【總結】11條nginx優化方法助力你的運維生涯

天府雲創發表於2017-03-17

天府雲創&恩威科技提醒,本文閱讀時間5分鐘


隱藏nginx header裡版本號資訊

1.檢視版本號

2.隱藏版本號

在nginx配置檔案的http標籤內加入“server_tokens off; ”引數,也可以放大server標籤和location標籤中,如下:

再此檢視如下,瀏覽器訪問錯誤頁面也就沒有版本號了

更改原始碼隱藏軟體名稱及版本號

在nginx編譯安裝之前,先更改,之後再編譯安裝

1.更改版本號

修改nginx-1.3.4/src/core/nginx.h

修改後檢視header結果:

2.改nginx-1.6.12/src/http/ngx_http_header_filter_module.c

需要修改的字串

修改後的字串

3.修改ngx_http_special_response.c

修改為:

更改掉nginx預設使用者及使用者組(worker程式服務使用者優化)

1.檢視預設配置如下:

預設情況下,nginx服務啟動,使用的使用者和組預設都是nobody,

將web使用者改為特殊的使用者名稱如:nginx或更特殊點的dabaojian,但是這個使用者必須是系統存在的。

2.建立nginx使用者

3.配置檔案nginx.conf中修改(也可以編譯安裝時指定預設)

在配置檔案最外層上面

4.讓woker程式使用普通使用者執行
為master服務降權:使用非root跑nginx master

注意:不能用80特權埠 ,前端nginx反向代理轉埠

配置nginx worker程式個數

nginx由master和worker程式組成,master程式相當於管理員,worker程式為使用者提供服務

一般設定為cpu核數或則核數x2,用top按1檢視

修改nginx.conf配置檔案第一行

根據cpu核數進行nginx程式優化

把幾個程式分配在一個cup上,cup親和力

1.不同cpu設定如下

四核cpu配置:

八核cpu伺服器引數配置:

2.官方文件說明

nginx事件處理模型優化

nginx的連線處理機制在不同的作業系統上採用不用的IO模型,在linux下,nginx使用epoll的IO多路複用模型,在freebsd使用kqueue的IO多路複用模型,在solaris使用/dev/pool方式的IO多路複用模型,在windows使用的icop等等。

根據系統型別不同選擇不同的事務處理模型,選擇有“use [ kqueue | rtsig |epool |dev/pool |select |pllo ];”我們使用的是Centos6.5的linux,因此將nginx的事件處理模型調整為epool模型。

具體引數如下在優化4下邊挨著:

調整nginx worker單個程式允許的客戶端最大連線數

這個值根據伺服器效能和程式的記憶體來指定(一個程式啟動使用的記憶體根據程式確定)

這個引數是單個程式的最大連結數,實際最大連結數是worker技能書乘以這個數。

Max_client=worker_processes*worker_connections

配置nginx worker程式最大開啟檔案數

相當於系統ulimit -HSn,應該是總的。

理念:配置引數不是越大越好,最好設為伺服器承受的極限點。

開啟高效的檔案傳輸模

在http欄位設定

tcp_nopush引數可以允許把http response header和檔案的開始放在一個檔案裡釋出,積極的作用是減少網路報文段的數量。

設定連線超時時間

保護伺服器資源,硬體CPU mem,連線數。

建立連線也是要消耗資源的,我們一般斷掉那些連上的連結,但是不做事的

php網站建議短連線,PHP程式建立連線消耗的資源和時間要少。

JAVA網站建議長連線,JAVA程式建立連線消耗的資源和時間要多。

在http欄位設定

上傳檔案大小限制(動態應用)



    今日值班: 學習顧問,可甜蜜貼心溝通,可嚴謹職業指導,愛水果也愛生活,會創意更愛學習,陪伴你的成長之路。


相關文章