nginx?status配置及參數(shù)配置小結(jié)
今天簡單介紹下如何監(jiān)控Nginx的狀態(tài)。
其實(shí)要監(jiān)控Nginx的狀態(tài)非常簡單,它內(nèi)建了一個狀態(tài)頁,只需修改Nginx配置啟用Status即可,對于想了解nginx的狀態(tài)以及監(jiān)控nginx非常有幫助。
1. 啟用nginx status配置
大概Nginx配置文件,在默認(rèn)主機(jī)里面加上location或者你希望能訪問到的主機(jī)里面加上如下配置。
#NGINX 狀態(tài)監(jiān)控 ,需要確認(rèn)是否安裝監(jiān)控模塊 http_stub_status_module,如果已經(jīng)安裝該模塊,可以為 NGINX 啟用狀態(tài)監(jiān)控: server { listen 91; location /status { stub_status on; access_log off; } }
2. 重啟nginx
操作命令比較簡單,請依照你的環(huán)境重啟你的nginx即可。
3. 打開status頁面
在瀏覽器中輸入nginx的地址:http://192.168.2.109:91/status,即可查看nginx的狀態(tài)信息
4. nginx status詳解
- Active connections – 活躍的連接數(shù)量
- server accepts handled requests — 總共處理了93個連接 , 成功創(chuàng)建93次握手, 總共處理了152個請求。
- reading — 讀取客戶端的連接數(shù)。
- writing — 響應(yīng)數(shù)據(jù)到客戶端的數(shù)量。
- waiting — 開啟 keep-alive 的情況下,這個值等于 active – (reading+writing), 意思就是 Nginx 已經(jīng)處理完正在等候下一次請求指令的駐留連接。
5、使用NginxStatus統(tǒng)計及監(jiān)控
(1). 統(tǒng)計網(wǎng)站流量和請求情況
NginxStatus提供了requests和bytes兩個信息,可以通過腳本定時獲取并統(tǒng)計,實(shí)現(xiàn)對網(wǎng)站流量和請求情況的監(jiān)控。
以下是獲取requests和bytes信息的python腳本:
import urllib.request import re import time url = 'http://localhost/nginx_status' while True: response = urllib.request.urlopen(url) html = response.read().decode('utf-8') status = re.findall(r'Requests\s+(\d+)', html)[0] # requests信息 traffic = re.findall(r'(\d+)\skB', html)[0] # bytes信息 print('Requests:{} | Traffic:{}kB'.format(status, traffic)) time.sleep(5) # 每5秒更新一次
(2). 監(jiān)控服務(wù)器負(fù)載情況
NginxStatus提供了Active connections
、Reading
、Writing
和Waiting
四個信息,可以用來監(jiān)控服務(wù)器的負(fù)載情況。
以下是根據(jù)Active connections信息,通過腳本實(shí)現(xiàn)自動熱備的例子:
#!/bin/bash # 配置備用服務(wù)器地址 backup_server=192.168.1.2 while true do # 獲取Active連接數(shù) active_conn=$(curl -s http://localhost/nginx_status | grep 'Active' | awk '{print $3}') # 當(dāng)Active連接數(shù)大于100時,自動將流量切到備用服務(wù)器 if [ $active_conn -gt 100 ] then sed -i 's/server\ 192\.168\.1\.1/server\ 192\.168\.1\.2/g' /etc/nginx/nginx.conf nginx -s reload fi # 當(dāng)Active連接數(shù)小于50時,自動將流量切回主服務(wù)器 if [ $active_conn -lt 50 ] then sed -i 's/server\ 192\.168\.1\.2/server\ 192\.168\.1\.1/g' /etc/nginx/nginx.conf nginx -s reload fi sleep 10 # 每10秒檢查一次 done
(3). 檢測Nginx服務(wù)狀態(tài)
NginxStatus提供了server accepts handled requests信息,可以用來監(jiān)控服務(wù)器的服務(wù)狀態(tài)。
以下是檢測Nginx服務(wù)狀態(tài)的python腳本:
import urllib.request import re import time import subprocess url = 'http://localhost/nginx_status' while True: response = urllib.request.urlopen(url) html = response.read().decode('utf-8') handled = re.findall(r'Handled\s+(\d+)', html)[0] status = subprocess.Popen('service nginx status', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output = status.communicate()[0].decode('utf-8') if 'active (running)' not in output or int(handled) == 0: subprocess.Popen('service nginx restart', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) time.sleep(30) # 等待30秒后再次檢測 time.sleep(5) # 每5秒檢查一次
6、總結(jié)
到此這篇關(guān)于nginx status配置及參數(shù)配置的文章就介紹到這了,更多相關(guān)nginx status配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx如何實(shí)現(xiàn)同個ip、端口訪問不同的項(xiàng)目(以路徑區(qū)分項(xiàng)目)
這篇文章主要介紹了nginx如何實(shí)現(xiàn)同個ip、端口訪問不同的項(xiàng)目(以路徑區(qū)分項(xiàng)目),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12nginx反向代理服務(wù)因配置文件錯誤導(dǎo)致訪問資源時出現(xiàn)404
這篇文章主要介紹了nginx反向代理服務(wù)因配置文件錯誤導(dǎo)致訪問資源時出現(xiàn)404,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06Nginx 根據(jù)URL帶的參數(shù)轉(zhuǎn)發(fā)的實(shí)現(xiàn)
這篇文章主要介紹了Nginx 根據(jù)URL帶的參數(shù)轉(zhuǎn)發(fā)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Nginx服務(wù)器中配置404錯誤頁面時一些值得注意的地方
這篇文章主要介紹了Nginx服務(wù)器中配置404錯誤頁面時一些值得注意的地方,包括隱藏Nginx出錯頁面及Header上的版本號的安全方法,需要的朋友可以參考下2016-01-01Nginx配置SSL證書部署HTTPS網(wǎng)站的方法(頒發(fā)證書)
這篇文章主要介紹了Nginx配置SSL證書部署HTTPS網(wǎng)站的方法(頒發(fā)證書),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06