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

    一,配置Nginx隐藏版本号

    yum -y install pcre-devel zlib-devel openssl-devel

    useradd -M -s /sbin/nglogin nginx

    tar xf nginx-1.6.2.tar.gz -C /usr/src

    cd /usr/src/nginx-1.6.2

    vim src/core/nginx.h

    13 #define NGLNX_VERSION    "12345"

    14 #define NGINX_VER     "lls/" NGINX_VERSION

    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module && make && make install

    ln -s /usr/local/nginx/sbin/nginx /usr/local/bin

    ll /usr/local/bin/nginx

    nginx

    netstat -anpt |grep :80

    [root@localhost ~]# curl -I http://192.168.30.23

    HTTP/1.1 200 OK

    Server: JD/12345

    Date: Mon, 18 Mar 2019 13:21:52 GMT

    Content-Type: text/html

    Content-Length: 632

    Last-Modified: Mon, 18 Mar 2019 13:00:38 GMT

    Connection: keep-alive

    ETag: "5c8f9676-278"

    Accept-Ranges: bytes

    二,配置nginx 网页缓存时间

    vim /usr/local/nginx/conf/nginx.conf

    location ~ .(gif|jpg|jpeg|png|bmp|ico)$ {

    expires 1d;

    }

    location ~.*.(js|css)$ {

    expires 1h;

    }

    cd /usr/local/nginx/html

    我桌面创建的一个1.jpg的图片把图片移到这个目录下/usr/local/nginx/html

    killall -HUP nginx

    ll /usr/local/nginx/html

    Vim /usr/local/nginx/html/index.png

    16 <img src=”1.jpg” />

    访问http:192.168.30.23

    进入fiddler抓包刷新查看网页图片的缓存时间,86400也就是一天的时间

    当然在下面也能看到我改动的版本号

    三,实现Nginx的日志切割

    Vim /opt/cut_nginx_log.sh

    #/bin/bash

    #cut_nginx_log.sh

    datetime=$(date -d "-1 day" "+%Y%m%d")

    log_path="/usr/local/nginx/logs"

    pid_path="/usr/local/nginx/logs/nginx.pid"

    [ -d $log_path/backup ] || mkdir -p $log_path/backup

    if [ -f $pid_path ]

    then

            mv $log_path/access.log $log_path/backup/access.log-$datetime

            kill -USR1 $(cat $pid_path)

            find $log_path/backup -mtime +30 | xargs rm -f

    else

            echo "Error,Nginx is not working!" | tee -a /var/log/messages

    fi

    ~  

    三,更改Nginx运行进程数

    [root@localhost ~]# grep 'core id' /proc/cpuinfo | uniq |wc -l

    1

    [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

    2  worker_processes  2;

    [root@localhost ~]# killall -HUP nginx

    [root@localhost ~]# ps aux |grep nginx | grep -v grep

    root      10544  0.0  0.2  45984  2084 ?        Ss   22:04   0:00 nginx: master process nginx

    nginx     10842  0.0  0.2  48496  2020 ?        S    22:28   0:00 nginx: worker process

    nginx     10843  0.0  0.2  48496  2020 ?        S    22:28   0:00 nginx: worker process

    在一台4核物理服务器上,可进行下面的配置,将进程分配

    Worker_cpu_affinity   0001  0010   0100   1000

    三,配置Nginx实现网页压缩功能

    [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

            gzip on;

            gzip_min_length 1k;

            gzip_buffers 4 16k;

            gzip_http_version 1.1;

            gzip_comp_level 2;

            gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;

    [root@localhost ~]# killall -HUP nginx

     

    [root@localhost ~]# chmod +x /opt/cut_nginx_log.sh

    [root@localhost ~]# crontab -e

    0     0      *      *       *    /

    [root@localhost ~]# /opt/cut_nginx.sh

    [root@localhost ~]# ls /usr/local/nginx/logs/backup/

    access.log-  access.log-20190317

    [root@localhost ~]# killall nginx

    [root@localhost ~]# /opt/cut_nginx_log.sh

    Error,Nginx is not working!

    四,配置实现连接超时

    Vim /usr/local/nginx/conf/nginx.conf

    34  keepalive_timeout 65;

    35 client_header_timeout 60;

    36 client_body_timeout 60;

    Killall -HUP nginx

    三,FPM 模块进行参数优化

    服务器为云服务器,运行了个人论坛,内存为1.5G.fpm进程数为20,内存消耗近1G,处理比较慢

    优化参数调整

    Vim /usr/local/php5/etc/php-fpm.conf

    Pm = dynamic

    Pm = start_servers = 5

    Pm .min_spare_servers = 2

    Pm.max_spare_servers = 8

    三,自动索引

    Vim /usr/local/nginx/conf/nginx.conf

            location /download {

                autoindex on;

                    }

    [root@www ~]# cd /usr/local/nginx/html

    [root@www html]# mkdir download/ dir{1,2} -p

    [root@www html]# touch download/1.txt

    [root@www html]# touch download/2.txt

    [root@www ~]# killall -HUP nginx

    浏览器访问http://192.168.30.24/download

    四,页面访问404页面

        error_page 403 404          /404.html;

            location =/404.html{

                    root html;

            }

    [root@www html]# echo "Not Find " > /usr/local/nginx/html/404.html

    [root@www html]# killall -HUP nginx

    浏览器访问 http://192.168.30.24/123

    显示Not Find

    五,目录别名功能

    [root@www html]# mkdir Centos RedHat

    [root@www ~]# echo "hello,students" > /usr/local/nginx/html/RedHat/index.html

    [root@www ~]# vim /usr/local/nginx/conf/nginx.conf

      location /Centos {

                    alias /usr/local/nginx/html/RedHat;

            }

    [root@www ~]# service nginx restart

    浏览器访问http://192.168.30.24/Centos

  • 相关阅读:
    WinDbg符号表设置的基础
    Mysql的用户管理与授权
    Django的models由数据库表生成
    Spring框架第一天(搭建项目)
    Python中的参数
    Java集合
    Mysql的锁
    # django通过操作admin对原有的数据库进行操作
    数据库连接池与SQL工具类
    MySql的事务及数据的导入导出
  • 原文地址:https://www.cnblogs.com/zc1741845455/p/10943890.html
Copyright © 2011-2022 走看看