《11條nginx優化方法助力你的運維生涯》要點:
本文介紹了11條nginx優化方法助力你的運維生涯,希望對您有用。如果有疑問,可以聯系我們。
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
修改為:
1.查看默認配置如下:
默認情況下,nginx服務啟動,使用的用戶和組默認都是nobody,
將web用戶改為特殊的用戶名如:nginx或更特殊點的dabaojian,但是這個用戶必須是系統存在的.
2.建立nginx用戶
3.配置文件nginx.conf中修改(也可以編譯安裝時指定默認)
在配置文件最外層上面
4.讓woker進程使用普通用戶運行
為master服務降權:使用非root跑nginx?master
注意:不能用80特權端口 ,前端nginx反向代理轉端口
nginx由master和worker進程組成,master進程相當于管理員,worker進程為用戶提供服務
一般設置為cpu核數或則核數x2,用top按1查看
修改nginx.conf配置文件第一行
把幾個進程分配在一個cup上,cup親和力
1.不同cpu設置如下
四核cpu配置:
八核cpu服務器參數配置:
2.官方文檔說明
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下邊挨著:
這個值根據服務器性能和程序的內存來指定(一個進程啟動使用的內存根據程序確定)
這個參數是單個進程的最大鏈接數,實際最大鏈接數是worker技能書乘以這個數.
Max_client=worker_processes*worker_connections
相當于系統ulimit -HSn,應該是總的.
理念:配置參數不是越大越好,最好設為服務器承受的極限點.
在http字段設置
tcp_nopush參數可以允許把http?response?header和文件的開始放在一個文件里發布,積極的作用是減少網絡報文段的數量.
保護服務器資源,硬件CPU mem,連接數.
建立連接也是要消耗資源的,我們一般斷掉那些連上的鏈接,但是不做事的
php網站建議短連接,PHP程序建立連接消耗的資源和時間要少.
JAVA網站建議長連接,JAVA程序建立連接消耗的資源和時間要多.
在http字段設置
原文來自——微信公眾號(馬哥Linux教育)