nginx和php-fpm一樣內建了一個狀態頁,對于想了解nginx的狀態以及監控nginx非常有幫助。為了后續的zabbix監控,我們需要先了解nginx狀態頁是怎么回事。
1. 啟用nginx status配置
在默認主機里面加上location或者你希望能訪問到的主機里面。
1
2
3
4
5
6
7
8
9
10
11
|
server { listen *:80 default_server; server_name _; location /ngx_status { stub_status on; access_log off; #allow 127.0.0.1; #deny all; } } |
2. 重啟nginx
請依照你的環境重啟你的nginx
1
|
# service nginx restart |
3. 打開status頁面
1
|
# curl http://127.0.0.1/ngx_status |
1
2
3
4
|
Active connections: 11921 server accepts handled requests 11989 11989 11991 Reading: 0 Writing: 7 Waiting: 42 |
4. nginx status詳解
- active connections – 活躍的連接數量
- server accepts handled requests — 總共處理了11989個連接 , 成功創建11989次握手, 總共處理了11991個請求
- reading — 讀取客戶端的連接數.
- writing — 響應數據到客戶端的數量
- waiting — 開啟 keep-alive 的情況下,這個值等于 active – (reading+writing), 意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留連接.
腳本中,以下指令指定啟用獲取Nginx工作狀態的功能。
1
2
3
4
5
6
|
location /NginxStatus { stub_status on; access_log logs /NginxStatus .log; auth_basic "NginxStatus" ; } |
1
2
3
4
5
|
Active connections: 2 server accepts handled requests 24 24 129 Reading: 1 Writing: 1 Waiting: 0 |
- Active connections: 對后端發起的活動連接數.
- Server accepts handled requests: Nginx總共處理了24個連接,成功創建24次握手(證明中間沒有失敗的),總共處理了129個請求.
- Reading: Nginx 讀取到客戶端的Header信息數.
- Writing: Nginx 返回給客戶端的Header信息數.
- Waiting: 開啟keep-alive的情況下,這個值等于 active – (reading + writing),意思就是Nginx已經處理完成,正在等候下一次請求指令的駐留連接.
所以,在訪問效率高,請求很快被處理完畢的情況下,Waiting數比較多是正常的.如果reading +writing數較多,則說明并發訪問量。