zoukankan      html  css  js  c++  java
  • nginx优化

    创建多个池子
    [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
  • 相关阅读:
    Everything
    图片在下载过程中由模糊逐渐变清晰的技巧
    Windows下Critical Section、Event、Mutex、Semaphores区别
    二维Cookie操作(JS和ASP)
    ASP.net利用urlMappings重写URL路径(URL映射)
    GHOST (以硬盘为单位和以分区分区为单位还原)>个人观点:)
    简单计算器
    ASP操作COOKIE
    擦亮自己的眼睛去看SQLServer之谈谈锁机制
    SQL SERVER2008跟踪标志
  • 原文地址:https://www.cnblogs.com/pxmlinux/p/5597424.html
Copyright © 2011-2022 走看看