Nginx深度優化

  • 時間:2018-07-12 22:43 作者:Java填坑之路 來源:Java填坑之路 閱讀:141
  • 掃一掃,手機訪問
摘要:隱藏版本號修改使用戶與組網頁緩存時間日志切割連接超時更改進程數網頁壓縮防盜鏈FPM參數優化一、隱藏版本號1.在centos7系統中通過curl命令查看curl -I http://192.168.100.262.修改nginx.conf配置文件,在http{}內增加server_tokens off
  1. 隱藏版本號
  2. 修改使用戶與組
  3. 網頁緩存時間
  4. 日志切割
  5. 連接超時
  6. 更改進程數
  7. 網頁壓縮
  8. 防盜鏈
  9. FPM參數優化

一、隱藏版本號

1.在centos7系統中通過curl命令查看

curl -I http://192.168.100.26

Nginx深度優化

2.修改nginx.conf配置文件,在http{}內增加server_tokens off;語句

Nginx深度優化

3.重啟nginx

killall -1 nginx

4.用curl命令查看驗證

curl -I http://192.168.100.26

Nginx深度優化


二、修改使用戶與組

Nginx運行時進程需要有使用戶和組的支持,使用以實現對網站文件讀取時進行訪問控制。主進程由root創立,子進程由指定的使用戶與組創立,默認為nobody。

1.編譯nginx時指定使用戶與組

./configure \

--prefix=/usr/local/nginx \

--user=nginx \

--group=nginx \

--with-http_stub_status_module

2.修改nginx配置文件指定使用戶與組

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

Nginx深度優化

3.重啟nginx

killall -1 nginx

4.查看nginx進程信息(主進程root使用戶,子進程nginx使用戶)

ps aux | grep nginx

Nginx深度優化


三、網頁緩存時間

當Nginx將網頁數據放回給用戶端后,能設置緩存時間,以便日后進行重復請求訪問,以加快訪問速度、同時減輕服務器壓力,一般對靜態資源進行設置,對動態網頁不要設置緩存時間。

1.下面對網站的圖片進行指定緩存時間設置

Nginx深度優化

2.修改nginx配置文件,指定緩存時間為1天

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

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

root html;

expires 1d;

}

Nginx深度優化

3.重啟nginx

killall -1 nginx

4.Fiddler工具進行抓包驗證

Nginx深度優化


四、日志切割

Nginx通過nginx的信號控制功可以腳原本實現日志的自動切割,并將腳本加入到Linux的計劃性任務中,讓腳本在每天固定的時間執行,得以實現日志切割功可以。

1.編寫fenge.sh腳本

vim /opt/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}/test.com-access.log-$d

kill -USR1 $(cat $pid_path) #創立新日志文件

find $logs_path -mtime +30 | xargs rm -rf #刪除30天前的日志文件

2. 為腳本賦予執行權限

chmod +x /opt/fenge.sh

3.執行腳本,測試日志文件能否分割成功

. /fenge.sh

Nginx深度優化

4.增加計劃性任務

crontab -e

#每日凌晨1:00執行腳本

0 1 * /opt/fenge.sh


五、連接超時

一般網站中,為了避免同一個用戶長時間占使用連接,造成資源白費,能設置相應的連接超時參數,實現對連接訪問時間的控制。

1. 修改nginx.conf配置文件

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

Nginx深度優化

2.重啟nginx

killall -1 nginx

3.對網站進行訪問,并用Fiddler工具進行抓包驗證

Nginx深度優化


六、更改進程數

在高并發環境中,需要啟動更多的Nginx進程以保證快速響應,使用以解決使用戶的請求,避免造成阻塞。

1.查看ngixn運行進程的個數

cat /proc/cpuinfo | grep -c "physical"

2.修改nginx.conf配置文件

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

Nginx深度優化

3.重啟nginx

killall-1 nginx

4.查看nginx進程數

ps aux | grep nginx

Nginx深度優化


七、網頁壓縮

Nginx服務器將輸出內容壓縮后進行傳輸,以節約網站的帶寬,提升使用戶的訪問體驗,默認已經安裝了該板塊。

1.修改nginx.conf配置文件

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

gzip on;

gzip_buffers 4 64k;

gzip_http_version 1.1;

gzip_comp_level 2;

gzip_min_length 1k;

gzip_vary on;

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

2.重啟nginx

killall -1 nginx

3.創立一個大于1KB以上的網頁文件,而后對其進行訪問抓包

curl -I -H "Accept-Encoding: gzip, deflate" 192.168.100.26/

Nginx深度優化


八、防盜鏈

在網站中,一般都要配置防盜鏈功可以,以避免網站內容被非法盜使用,造成經濟損失,也避免了流量的白費。

1.修改nginx.conf配置文件

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

location ~.(jpg|gif|swf)$ { #匹配.jpg 、.gif 、或者 .swf結尾的文件

valid_referers none blocked .abc.com abc.com; #信任域名站點

if ( $invalid_referer ) {

rewrite ^/ http://www.abc.com/error.png; #重寫返回error.png

}

}

2.重啟nginx

killall -1 nginx


九、FPM參數優化

Nginx的PHP解析功可以實現是由FPM解決的,為了提高PHP的解決速度,可對FPM板塊進行參數的調整。

1.安裝帶有FPM板塊的PHP環境;

2.FPM進程有兩種啟動方式,由pm參數指定,分別是static和dynamic,前者將產生固定數據的FPM進程,后者將以動態的方式產生FPM進程;

1.修改php-fpm.conf文件

vi php-fpm.conf

pid = run/php-fpm.pid

pm = dynamic #動態方式

pm.max_children=20 #最大啟動進程數量為20個

pm.start_servers = 5 #初始啟動時進程為5個

pm.min_spare_servers = 2 #最小空閑進程數為2個

pm.max_spare_servers = 8 #最大空閑進程數為8個

  • 全部評論(0)
最新發布的資訊信息
【系統環境|數據庫】零基礎如何快速學好大數據?(2019-06-29 12:27)
【系統環境|Linux】零基礎如何學好大數據?必備需要學習知識(2019-06-18 11:54)
【系統環境|】Hadoop環境中管理大數據存儲八大技巧(2019-06-15 11:01)
【系統環境|服務器應用】現在國內IT行業是不是程序員過多了?(2019-06-11 06:34)
【系統環境|服務器應用】新貴 Flutter(2) 自己設置 Widget(2019-06-11 06:34)
【系統環境|服務器應用】Android完整知識體系路線(菜鳥-資深-大牛必進之路)(2019-06-11 06:34)
【系統環境|服務器應用】Java程序員小伙經歷三個月備戰,終獲阿里offer(2019-06-11 06:34)
【系統環境|服務器應用】每日一問:談談對 MeasureSpec 的了解(2019-06-11 06:34)
【系統環境|服務器應用】【科普】晶體管-1(2019-06-11 06:34)
【系統環境|服務器應用】一個很多人都會答錯的java基礎題(2019-06-11 06:33)
手機二維碼手機訪問領取大禮包
返回頂部
免费资料铁四肖中特