在Nginx的插件模塊中有一個模塊stub_status可以監控Nginx的一些狀態信息,預設安裝可能沒有這個模塊,手動編譯的時候加一下即可。 1. 模塊安裝 先使用命令查看是否已經安裝這個模塊: 如果已經安裝,會在顯示的信息中包含 --with-http_stub_status_module信息。 ...
在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]}'