在Nginx的外掛模組中有一個模組stub_status可以監控Nginx的一些狀態資訊,預設安裝可能沒有這個模組,手動編譯的時候加一下即可。
1. 模組安裝
先使用命令檢視是否已經安裝這個模組:
[root@ihxb123Z nginx]# ./nginx -V (V大寫會顯示版本號和模組等資訊、v小寫僅顯示版本資訊。
如果已經安裝,會在顯示的資訊中包含 --with-http_stub_status_module資訊。如果沒有此模組,需要重新安裝,編譯命令如下:
./configure –with-http_stub_status_module
2. Nginx配置
安裝後只要修改nginx配置即可,配置如下:
location /hxbcdnstatus { stub_status on; access_log off; allow 127.0.0.1; deny all; #auth_basic "NginxStatus"; #auth_basic_user_file conf/nginxstaus; }
此處預設只有本地訪問,如果遠端可以檢視需要加相關的IP或者乾脆去掉Deny all即可。加密檔案可以使用#htpasswd -c /usr/nginx/conf hxb 命令來建立。配置完成後需要重啟Nginx服務。
狀態配置只能是針對某個Nginx服務。目前Nginx還無法做到針對單個站點進行監控。
3. 狀態檢視
配置完成後在瀏覽器中輸入http://127.0.0.1/hxbcdnstatus檢視,顯示資訊如下:
Active connections: 100 server accepts handled requests 1075 1064 6253 Reading: 0 Writing: 5 Waiting: 95
4. 引數說明
active connections – 活躍的連線數量
server accepts handled requests — 總共處理了107520387個連線 , 成功建立107497834次握手, 總共處理了639121056個請求
每個連線有三種狀態waiting、reading、writing
reading —讀取客戶端的Header資訊數.這個操作只是讀取頭部資訊,讀取完後馬上進入writing狀態,因此時間很短。
writing — 響應資料到客戶端的Header資訊數.這個操作不僅讀取頭部,還要等待服務響應,因此時間比較長。
waiting — 開啟keep-alive後等候下一次請求指令的駐留連線.
正常情況下waiting數量是比較多的,並不能說明效能差。反而如果reading+writing數量比較多說明服務併發有問題。
補充:
檢視Nginx併發程式數:ps -ef | grep nginx | wc -l
檢視Web伺服器TCP連線狀態:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'