标签:
创建多个池子
[www1]
listen =/tmp/www1.sock
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers =5
pm.max_spare_servers =35
pm.max_requests = 500
rlimit_files = 1024
[root@superz~]#/usr/local/php/sbin/php-fpm –t
[root@superz ~]#/etc/init.d/php-fpmrestart
[root@superz ~]#ps aux|grepphp-fpm
不同的域名指定不同的池子/多个域名使用一个池子
[root@superz ~]#ls/usr/local/nginx/conf/vhosts
111.conf 222.conf
编辑fastcgi_pass unix:/tmp/php-fcgi.sock这行
指定池子,如指定www ,则修改为fastcgi_pass unix:www.sock
如指定www ,则修改为fastcgi_pass unix:www1.sock
性能追踪 网站运行慢
[root@superz ~]#vim/usr/local/php/etc/php-fpm.conf
在每个池子下面加入慢查询
slowlog =/tmp/www_slow.log #不同的池子指定不同的slowlog
request_slowlog_timeout=1 #执行时间超过1秒就记录它
php_admin_value[open_basedir]=/data/www/:/tmp/
#将用户访问文件的活动范围限制在指定的区域,通常是其家目录的路径
1.6 常见的502问题解决
[root@superz ~]#cd/usr/local/nginx/conf/vhosts/
[root@superz vhosts]#vim../nginx.conf #查看错误日志在哪儿,找errorlog
[root@superz vhosts]#cat/usr/local/nginx/logs/nginx_error.log #查看错误日志
Unix:/tmp/www/sockfailed(Permission denied) #没有权限去读这个文件
[root@superz vhosts]#ls –l /tmp/www.sock #查看这个文件的权限
srw-rw---- 1 root root 0 1月 29 11:55 /tmp/www.sock
[root@superz vhosts]#ps aux|grep nginx #查看nginx属主(nobody)
[root@superz vhosts]#vim/usr/local/php/etc/php-fpm.conf 编辑php配置文件
Group下加入监听用户和组的人
listen.owner = nobody
listen.group = nobody
[root@superzvhosts]#/usr/local/php/sbin/php-fpm –t
[root@superzvhosts]#/etc/init.d/php-fpm restart
1.7 nginx 用户认证
Discus 管理中心,仅有一层密码,不安全。配置多一层密码。
[root@superz ~]#cd/usr/local/nginx/conf/vhosts/
[root@superz vhosts]# vimtest.conf #打开虚拟主机配置文件
root下面一行添加:
location ~.*admin\.php$ {
auth_basic "aminglinux auth";
auth_basic_user_file /usr/local/nginx/conf/.htpasswd;
include fastcgi_params;
fastcgi_passunix:/tmp/www.sock;
fastcgi_index index.php;
fastcgi_paramSCRIPT_FILENAME /data/www$fastcgi_script_name;
}
[root@superz vhosts]#htpasswd -c /usr/local/nginx/conf/.htpasswd aming
输入两次密码
[root@superz vhosts]#htpasswd /usr/local/nginx/conf/.htpasswdaming1
(再次添加用户时,-c必须去掉)
输入两次密码
[root@superz vhosts]#/usr/local/nginx/sbin/nginx -t
[root@superz vhosts]#/usr/local/nginx/sbin/nginx -s reload
[root@superz vhosts]#curl –x127.0.0.1 –uaming:密码 www.test.com/admin.php
显示html表示正常解析。
1.8 nginx 域名跳转
[root@superz ~]#cd/usr/local/nginx/conf/vhosts/
[root@superz vhosts]#vimtest.conf
在server_name后直接加上一个域名(空格分隔)www.aaa.com
在下面加入一行
if ($host !=‘www.test.com’)
{
rewrite ^/(.*)$http://www.test.com/$1 permanent;
}
[root@superz vhosts]#/usr/local/nginx/sbin/nginx -t
[root@superz vhosts]#/usr/local/nginx/sbin/nginx -s reload
[root@superz vhosts]#curl –x127.0.0.1:80 www.aaa.com/fjdjgld -I #自动跳转到www.test.com
设置301域名跳转的目的,为了让搜索引擎加重主域名的权重
百度搜索栏输入Site:www.aminglinux.com
1.9 nginx不记录指定文件类型日志
[root@superz ~]# cd/usr/local/nginx/conf/vhosts/
[root@superz vhosts]# vim../nginx.conf
log_format aming‘$remote_addr $http_x_forwarded_for [$time_local]‘
日志名 远程ip 代理ip 时间
‘$host "$request_uri" $status‘
域名 保存地址 链接
‘"$http_referer" "$http_user_agent"‘
(防盗链)页面或资源来源的请求头 判断从哪里访问
[root@superz vhosts]#vim test.conf
root下增加一行
access_log /tmp/access.logaming;
[root@superz vhosts]#/usr/local/nginx/sbin/nginx –t
[root@superz vhosts]#/usr/local/nginx/sbin/nginx -s reload
[root@superz vhosts]# curl-x127.0.0.1:80 www.test.com/fgsdfdsf -I
[root@superz vhosts]# ls/tmp/access.log #这时候会生成一个日志
/tmp/access.log
[root@superz vhosts]# cat /tmp/access.log
#刷新网页查看日志内容 会发现有很多日志,其中包括png,gif等,这些都是没必要存在的
配置如下:
[root@superz vhosts]#vim test.conf
location ~ .*\.( gif|jpg|jpeg|png|bmp|swf|flv|rar|zip|gz|bz2)$
{
access_log off;
}
location ~ .*\.(js|css)$
{
access_log off;
}
2.0 nginx日志切割
[root@superz vhosts]# vim/usr/local/sbin/nginx_logrotate.sh
#创建一个脚本
#!/bin/bash
d=`date -d "-1day" +%F`
[ -d /tmp/nginx_log] ||mkdir /tmp/nginx_log
mv /tmp/access.log /tmp/nginx_log/$d.log
/etc/init.d/nginx reload >/dev/null
cd /tmp/nginx_log/
gzip -f $d.log
[root@superz vhosts]# sh -x/usr/local/sbin/nginx_logrotate.sh
[root@superz vhosts]# cd/tmp/nginx_log
[root@superz nginx_log]# ls
2016-06-14.log.gz
2.1 nginx配置静态文件过期时间(缓存)
设置缓存的好处:加快读取网页速度,节省带宽。
[root@superz vhosts]#vim test.conf
修改成如下所示:
location ~.*\.(gif|jpg|jpeg|png|bmp|swf)$
{
access_log off;
expires 15d; #缓存15天
}
location ~\.(js|css)
{
access_log off
expires 2h; #缓存2小时
}
[root@superz vhosts]# /usr/local/nginx/sbin/nginx –t
[root@superz vhosts]# /usr/local/nginx/sbin/nginx -s reload
[root@superz vhosts]# curl -x127.0.0.1:80 ‘www.test.com/static/js/ajax.js–I
#Cache-Control:max-age=7200这个即为设置的缓存2小时
2.2 nginx配置防盗链
[root@superz vhosts]# vim test.conf
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|rar|zip|gz|bz2)$
{
access_log off;
expires 15d;
valid_referers noneblocked *.test.com
*.aa.com *.aminglinux.com;
if($invalid_referer)
{
return 403;
}
}
[root@superz vhosts]# /usr/local/nginx/sbin/nginx -t
[root@superz vhosts]# /usr/local/nginx/sbin/nginx -s reload
[root@superz vhosts]# curl -e http://www.baidu.com/111
-I -x127.0.0.1:80 ‘图片地址’
2.3 nginx访问控制
[root@superz ~]# cd/usr/local/nginx/conf/vhosts/
[root@superz vhosts]# vimtest.conf
#删除 location ~ .*admin下面两行
增加:
allow 127.0.0.1;
deny all;
[root@superz vhosts]#/usr/local/nginx/sbin/nginx –t
[root@superz vhosts]#/usr/local/nginx/sbin/nginx -s reload
#测试
[root@superz vhosts]# curl-x127.0.0.1:80 www.test.com/admin.php -I
HTTP/1.1 200 OK
[root@superz vhosts]# curl-x192.168.1.200:80 www.test.com/admin.php -I
HTTP/1.1 403 Forbidden
[root@superz vhosts]# curl-x192.168.1.200:80 www.test.com/forum.php -I
HTTP/1.1 200 OK
Nginx的访问控制不分先后顺序,直接一行一行过滤,命中了一条规则立马生效,其他的一概不管。
2.4 nginx 禁止指定user_agent
[root@superz vhosts]#vimtest.conf
#在location ~ .*admin上增加两行
if ($http_user_agent ~*‘curl|baidu|111111‘) (~*号不区分大小写匹配)
{
return 403;
}
[root@superz vhosts]#/usr/local/nginx/sbin/nginx –t
[root@superz vhosts]#/usr/local/nginx/sbin/nginx -s reload
#测试
[root@superz vhosts]# curl-x192.168.1.200:80 www.test.com/forum.php -I
HTTP/1.1 403 Forbidden
[root@superz vhosts]# curl-A "dsadsadsadsadsadsa" -x192.168.1.200:80 www.test.com/forum.php -I
HTTP/1.1 200 OK
[root@superz vhosts]# curl-A "dsadsad111111adsadsa" -x192.168.1.200:80 www.test.com/forum.php-I
HTTP/1.1 403 Forbidden
2.5 nginx代理详解
[root@superz vhosts]# vimproxy.conf #新建proxy.conf
upstream aming{
server 61.135.169.121:80; #使用dig www.baidu.com得到
server 61.135.169.125:80; #yum installbind*安装dig
}
server {
listen 80;
server_name www.baidu.com;
location / {
proxy_pass http://aming/; #真正网站所在的ip
proxy_set_header Host $host; #多个server必须打开
}
}
[root@superz vhosts]# curl-x127.0.0.1:80 www.baidu.com
nginx优化
标签:
原文地址:http://www.cnblogs.com/pxmlinux/p/5597424.html