1. 程式人生 > >CentOS7.4—最新版本nginx調優

CentOS7.4—最新版本nginx調優

Centos7.4 最新版本 nginx 調優

Nginx調優
目錄
第一部分 優化版本信息
第二部分 保持連接
第三部分 優化進程數
第四部分 日誌分割
第五部分 網頁壓縮

Nginx安裝過程不再這裏展示,請參照http://blog.51cto.com/12227558,下面直接進入調優

第一部分 優化版本信息
----------隱藏版本信息----------
第一步:查看版本信息
方法一:
[root@localhost ~]# curl -I 192.168.80.40
技術分享圖片
方法二:Wireshark抓包
Win7訪問http://192.168.80.40/index.php
(註意:要後綴帶php文件,才能顯示出php的信息)
技術分享圖片
技術分享圖片

第二步:隱藏版本信息

  1. 隱藏nginx版本
    [root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf //編輯主配置文件
    添加以下內容:
    技術分享圖片
    保存退出
    [root@localhost ~]# systemctl restart nginx //重啟nginx服務
  2. 隱藏php信息
    [root@localhost ~]# vi /usr/local/php/lib/php.ini
    修改以下內容:
    技術分享圖片
    保存退出
    [root@localhost ~]# systemctl restart nginx //重啟nginx服務

第三步:測試驗證
方法一:
[root@localhost ~]# curl -I 192.168.80.40

技術分享圖片
方法二:Wireshark抓包
訪問:http://192.168.80.40/index.php
技術分享圖片
//已成功隱藏

----------修改nginx版本信息---------
(註意,此方法會把現有配置全部刪除,建議剛搭建完nginx時使用)
一:編輯配置文件
[root@localhost ~]# vi /opt/nginx-1.13.9/src/core/nginx.h
源碼目錄下修改信息:
技術分享圖片
保存退出
二:刪除安裝文件目錄並重新編譯安裝
[root@localhost ~]# cd /usr/local/
[root@localhost local]# rm -rf nginx/ //刪除nginx安裝目錄
[root@localhost local]# cd /opt/nginx-1.13.9/ //進入nignx解壓包目錄

[root@localhost nginx-1.13.9]#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module //定義配置
[root@localhost nginx-1.13.9]# Make //編譯
[root@localhost nginx-1.13.9]# make install //安裝
[root@localhost nginx-1.13.9]# killall -1 nginx //安全重啟nginx服務
[root@localhost nginx-1.13.9]# nginx //啟動nginx服務
[root@localhost nginx-1.13.9]# netstat -anpt | grep nginx //查看nginx運行狀態
三:重新訪問http://192.168.80.10,抓包驗證
技術分享圖片
技術分享圖片
//偽裝成功

第二部分 保持連接
一: wireshark抓包查看連接配置
技術分享圖片
二: 編輯配置文件
[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
編輯以下內容:
keepalive_timeout 65 180; //以後者為準,可以在http\server\location設置
client_header_timeout 80; //等待客戶端發送請求頭的超時時間 超時會發送408錯誤
client_body_timeout 80; //設置客戶端發送請求體超時時間
技術分享圖片
保存退出
(備註:keepalive_timeout第一個參數指定了與客戶端的keep-alive連接超時時間,服務器將會在這個時間後關閉連接。可選的第二個參數指定了在響應頭Keep-Alive:timeout=time中的time值。這個頭能夠讓一些瀏覽器主動關閉連接,這樣服務器就不必去關閉連接了。若沒有這個參數,Nginx將不會發送Keep-Alive響應頭)
[root@localhost ~]# service nginx restart //重啟nginx服務
三: 抓包驗證結果
訪問http://192.168.80.40
技術分享圖片
用wireshark抓包
技術分享圖片
//配置成功

第三部分 優化進程數
將nginx服務原來由一個CPU核心處理,配置成由多個核心處理,增加處理效率
[root@localhost ~]# cat /proc/cpuinfo | grep "processor" //查看本機處理器
技術分享圖片
[root@localhost ~]# ps aux | grep nginx
技術分享圖片
[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf //編輯nginx主配置文件
編輯以下內容:
技術分享圖片
保存退出
[root@localhost ~]# nginx –t //檢查語法錯誤
技術分享圖片
[root@localhost ~]# killall -9 nginx //結束nginx進程
[root@localhost ~]# service nginx start //啟動nginx服務
[root@localhost ~]# ps aux | grep nginx //查看nginx進程
技術分享圖片

第四部分 日誌分割
Nginx沒有專門的命令來執行日誌分割,只能通過腳本實現
[root@localhost ~]# ls /usr/local/nginx/logs/ //查看默認日誌

  1. 編寫日誌分割腳本
    [root@localhost ~]# cd /usr/local/nginx/logs/
    [root@localhost logs]# vi fenge.sh //創建日誌分割腳本
    #!/bin/bash
    #filename: fenge.sh
    D=$(date -d "-1 day" "+%Y%m%d")
    LOGS_PATH="/var/log/nginx" //指定分割日誌目錄
    PID_PATH="/usr/local/nginx/logs/nginx.pid"
    [ -d $LOGS_PATH ] || mkdir -p $LOGS_PATH //創建分割日誌文件目錄(如果存在就不創建,不存在就創建)
    mv /usr/local/nginx/logs/access.log ${LOGS_PATH}/aa.com-access.log-$D //移動並重命名分割日誌文件
    kill -USR1 $(cat $PID_PATH) //重建分割日誌文件
    find $LOGS_PATH -mtime +30 | xargs rm –rf //超過30天自動刪除
    保存退出
  2. 執行腳本,測試日誌是否被分割
    [root@localhost ~]# sh fenge.sh //執行腳本
    Win7訪問http://192.168.80.40
    [root@localhost logs]# ls /var/log/nginx/ //查看分割日誌,按日期分割了日誌文件
    技術分享圖片
  3. 做計劃任務,定期分割日誌
    [root@localhost logs]# crontab –e
    30 1 * sh /root/fenge.sh
    (每天的淩晨1:30分執行/opt/fenge.sh腳本,進行日誌分割)

第五部分 配置網頁壓縮

  1. 修改Nginx的配置文件,加入壓縮功能參數
    [root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
    gzip on; //開啟gzip壓縮
    gzip_buffers 4 64k; //表示申請4個單位為16KB的內存作為壓縮結果流緩存,默認值是申請與原始數據大小相同的內存空間來存儲gzip壓縮結果
    gzip_http_version 1.1; //設置識別http協議版本
    gzip_comp_level 2; //指定gzip壓縮比,壓縮比1最小,處理速度最快;壓縮比9最大,傳輸速度最快,但處理速度最慢,使用默認即可
    gzip_min_length 1k; //設置允許壓縮的頁面最小字節數
    gzip_vary on; //讓前端的緩存服務器緩存經過gzip壓縮的頁面
    gzip_types text/pain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss; //壓縮類型,指哪些網頁文檔啟用壓縮功能
    技術分享圖片
    保存退出
  2. 修改網頁文件大小
    [root@localhost ~]# ls -lh /usr/local/nginx/html/ //查看html文件大小
    技術分享圖片
    [root@localhost ~]# truncate -s 10k /usr/local/nginx/html/index.html
    //由於壓縮配置默認為最小1KB文件,將index.html放大超過1K
    技術分享圖片
    [root@localhost ~]# service nginx restart //重啟nginx服務
  3. 驗證
    Win7訪問http://192.168.80.40
    技術分享圖片
    用wireshark抓包驗證結果
    技術分享圖片
    //壓縮生效
    (註意,如果結果出不來,清除一下瀏覽器緩存)

CentOS7.4—最新版本nginx調優