欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nginx?status配置及參數(shù)配置小結(jié)

 更新時(shí)間:2024年04月10日 08:34:46   作者:褚念榮  
本文主要介紹了nginx?status配置及參數(shù)配置,其實(shí)要監(jiān)控Nginx的狀態(tài)非常簡(jiǎn)單,它內(nèi)建了一個(gè)狀態(tài)頁,只需修改Nginx配置啟用Status即可,感興趣的可以了解一下

今天簡(jiǎn)單介紹下如何監(jiān)控Nginx的狀態(tài)。

其實(shí)要監(jiān)控Nginx的狀態(tài)非常簡(jiǎn)單,它內(nèi)建了一個(gè)狀態(tài)頁,只需修改Nginx配置啟用Status即可,對(duì)于想了解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

操作命令比較簡(jiǎn)單,請(qǐng)依照你的環(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個(gè)連接 , 成功創(chuàng)建93次握手, 總共處理了152個(gè)請(qǐng)求。
  • reading — 讀取客戶端的連接數(shù)。
  • writing — 響應(yīng)數(shù)據(jù)到客戶端的數(shù)量。
  • waiting — 開啟 keep-alive 的情況下,這個(gè)值等于 active – (reading+writing), 意思就是 Nginx 已經(jīng)處理完正在等候下一次請(qǐng)求指令的駐留連接。

5、使用NginxStatus統(tǒng)計(jì)及監(jiān)控

(1). 統(tǒng)計(jì)網(wǎng)站流量和請(qǐng)求情況

NginxStatus提供了requests和bytes兩個(gè)信息,可以通過腳本定時(shí)獲取并統(tǒng)計(jì),實(shí)現(xiàn)對(duì)網(wǎng)站流量和請(qǐ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、WritingWaiting四個(gè)信息,可以用來監(jiān)控服務(wù)器的負(fù)載情況。

以下是根據(jù)Active connections信息,通過腳本實(shí)現(xiàn)自動(dòng)熱備的例子:

#!/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時(shí),自動(dòng)將流量切到備用服務(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時(shí),自動(dòng)將流量切回主服務(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). 檢測(cè)Nginx服務(wù)狀態(tài)

NginxStatus提供了server accepts handled requests信息,可以用來監(jiān)控服務(wù)器的服務(wù)狀態(tài)。

以下是檢測(cè)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秒后再次檢測(cè)

    time.sleep(5)    # 每5秒檢查一次

6、總結(jié)

到此這篇關(guān)于nginx status配置及參數(shù)配置的文章就介紹到這了,更多相關(guān)nginx status配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論