nginx status配置及参数配置小结

 更新时间:2024年04月10日 08:34:46   作者:褚念荣  
本文主要介绍了nginx status配置及参数配置,其实要监控Nginx的状态非常简单,它内建了一个状态页,只需修改Nginx配置启用Status即可,感兴趣的可以了解一下

今天简单介绍下如何监控Nginx的状态。

其实要监控Nginx的状态非常简单,它内建了一个状态页,只需修改Nginx配置启用Status即可,对于想了解nginx的状态以及监控nginx非常有帮助。

1. 启用nginx status配置

大概Nginx配置文件,在默认主机里面加上location或者你希望能访问到的主机里面加上如下配置。

   #NGINX 状态监控 ,需要确认是否安装监控模块 http_stub_status_module,如果已经安装该模块,可以为 NGINX 启用状态监控:
   server {
	    listen 91;
	    
	    location /status {            
	      stub_status on;            
	      access_log off;            
	    }
    }    

2. 重启nginx

操作命令比较简单,请依照你的环境重启你的nginx即可。

3. 打开status页面

在浏览器中输入nginx的地址:http://192.168.2.109:91/status,即可查看nginx的状态信息

在这里插入图片描述

4. nginx status详解

  • Active connections – 活跃的连接数量
  • server accepts handled requests — 总共处理了93个连接 , 成功创建93次握手, 总共处理了152个请求。
  • reading — 读取客户端的连接数。
  • writing — 响应数据到客户端的数量。
  • waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接。

5、使用NginxStatus统计及监控

(1). 统计网站流量和请求情况

NginxStatus提供了requests和bytes两个信息,可以通过脚本定时获取并统计,实现对网站流量和请求情况的监控。

以下是获取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). 监控服务器负载情况

NginxStatus提供了Active connectionsReadingWritingWaiting四个信息,可以用来监控服务器的负载情况。

以下是根据Active connections信息,通过脚本实现自动热备的例子:

#!/bin/bash

# 配置备用服务器地址
backup_server=192.168.1.2

while true
do
    # 获取Active连接数
    active_conn=$(curl -s http://localhost/nginx_status | grep 'Active' | awk '{print $3}')

    # 当Active连接数大于100时,自动将流量切到备用服务器
    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

    # 当Active连接数小于50时,自动将流量切回主服务器
    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服务状态

NginxStatus提供了server accepts handled requests信息,可以用来监控服务器的服务状态。

以下是检测Nginx服务状态的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、总结

到此这篇关于nginx status配置及参数配置的文章就介绍到这了,更多相关nginx status配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解nginx 代理多个服务器(多个server方式)

    详解nginx 代理多个服务器(多个server方式)

    本篇文章主要介绍了详解nginx 代理多个服务器(多个server方式),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Nginx防御DDOS攻击的配置方法教程

    Nginx防御DDOS攻击的配置方法教程

    Nginx是一款轻量级的Web服务器,由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引Rambler使用。 下面这篇文章主要给大家介绍了关于Nginx防御DDOS攻击的配置方法,需要的朋友可以参考下。
    2017-07-07
  • nginx keepalive的具体使用

    nginx keepalive的具体使用

    这篇文章主要介绍了nginx keepalive的具体使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Nginx服务器限制IP访问的各种情况全解析

    Nginx服务器限制IP访问的各种情况全解析

    这篇文章主要介绍了Nginx服务器限制IP访问的各种情况全解析,包括限制同一IP在一段时间内的访问次数和全局限IP访问以及限制IP访问指定目录等情况,需要的朋友可以参考下
    2015-08-08
  • Nginx服务器中限制连接数与限制请求的模块配置教程

    Nginx服务器中限制连接数与限制请求的模块配置教程

    这篇文章主要介绍了Nginx服务器中限制连接数与限制请求的模块配置教程,分别为limit conn模块与limit req模块的相关用法讲解,需要的朋友可以参考下
    2016-01-01
  • 详解Nginx日志配置及日志切割

    详解Nginx日志配置及日志切割

    本篇文章主要介绍了详解Nginx日志配置及日志切割,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Nginx列出目录和文件并用密码控制访问权限配置方法

    Nginx列出目录和文件并用密码控制访问权限配置方法

    这篇文章主要介绍了Nginx列出目录和文件并用密码控制访问权限配置方法,本文给出了详细的安装配置步骤,需要的朋友可以参考下
    2015-07-07
  • 使用Nginx搭建文件服务器及实现文件服务的步骤

    使用Nginx搭建文件服务器及实现文件服务的步骤

    Nginx是轻巧、高效的Web服务器,用作文件服务器非常合适,但是需要一些高级功能,如FTP远程访问、多用户管理,可能需要选择更为复杂的方案,例如Apache或FileZilla Server,这篇文章主要介绍了详解如何使用Nginx搭建文件服务器及实现文件服务,需要的朋友可以参考下
    2024-01-01
  • Nginx服务器中为网站或目录添加认证密码的配置详解

    Nginx服务器中为网站或目录添加认证密码的配置详解

    这篇文章主要介绍了Nginx服务器中为网站或目录添加认证密码的配置详解,使用到了Apache的htpasswd工具,需要的朋友可以参考下
    2016-01-01
  • Nginx中alias指令的实现

    Nginx中alias指令的实现

    lias指令用于指定一个替换位置,该替换位置会替换掉location块中指定的URl,下面就来介绍一下alias指令,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08

最新评论