手把手教你Nginx常用模块详解之ngx_http_status_module(十一)

简介: 手把手教你Nginx常用模块详解之ngx_http_status_module(十一)

本专栏非常感谢大家得关注和支持,本人开源项目站点https://erosbt.com 将自己热爱与信仰的技术,持续不辍地传递。


Nginx专栏



一. 指令


ngx_http_status_module

该ngx_http_status_module模块提供对各种状态信息的访问。


二. 语法

句法: 状态;
默认:
语境: 位置

状态信息将可以从周围的位置访问。访问这个位置应该是有限的。

句法: status_format json; status_format jsonp回调;
默认: status_format json;
语境: http,服务器,位置

默认情况下,状态信息以JSON格式输出。


或者,数据可以作为JSONP输出。该callback参数指定回调函数的名称。该值可以包含变量。如果省略参数,或者计算的值是空字符串,则使用“ ngx_status_jsonp_callback”。

句法: status_zone区域;
默认:
语境: 服务器

启用指定的虚拟http或流(1.7.11)服务器状态信息的收集zone。多台服务器可能共享同一个区域。

数据

提供以下状态信息:

  • version提供的数据集的版本。目前的版本是8. nginx_version版本的nginx。
  • nginx_buildnginx构建的名称。
  • address接受状态请求的服务器的地址。
  • generation配置重新加载的总数。
  • load_timestamp上次重新加载配置的时间,以Epoch以来的毫秒数表示。
  • timestampEpoch以来的当前时间(以毫秒为单位)。
  • pid处理状态请求的工作进程的ID。
  • ppid启动辅助进程的主进程的标识。
  • processesrespawned异常终止和重新生成的子进程的总数。
  • connectionsaccepted接受的客户端连接的总数。
  • dropped丢弃的客户端连接总数。
  • active当前活动的客户端连接数。
  • idle当前闲置的客户端连接数。
  • sslhandshakes成功的SSL握手总数。
  • handshakes_failed失败的SSL握手总数。
  • session_reusesSSL握手期间会话重用的总次数。
  • requeststotal客户端请求的总数。
  • current当前的客户端请求数。
  • server_zones对于每个status_zone:processing当前正在处理的客户端请求的数量。
  • requests客户端收到的客户端请求总数。
  • responsestotal发送给客户的回复总数。
  • 1xx,2xx,3xx,4xx,5xx响应状态码数1XX,2XX,3XX,4XX,5XX和。
  • discarded没有发送回应完成的请求总数。
  • received从客户端收到的总字节数。
  • sent发送给客户端的总字节数。
  • slabs对于使用slab分配器的每个共享内存区域:pagesused当前使用的内存页数。
  • free当前的可用内存页数。
  • slots对于每个内存插槽大小(8,16,32,64,128等),提供以下数据:used当前使用的内存插槽数量。
  • free当前的可用内存插槽数量。
  • reqs尝试分配指定大小的内存的总次数。
  • fails尝试分配指定大小的内存失败的次数。
  • upstreams对于每个动态可配置组,提供以下数据:peers对于每个服务器,提供以下数据:id服务器的ID。
  • server服务器的地址。
  • name服务器指令中指定的服务器的名称。
  • service服务器指令的服务参数值。
  • backup指示服务器是否为备份服务器的布尔值。
  • weight服务器的重量。
  • state当前状态,可能是“ up”,“ draining”,“ down”,“ unavail”,“ checking”或“ unhealthy”之一。
  • active当前活动连接的数量。
  • max_conns服务器的max_conns限制。
  • requests转发到此服务器的客户端请求总数。
  • responsestotal从此服务器获得的响应总数。
  • 1xx,2xx,3xx,4xx,5xx状态代码为1xx,2xx,3xx,4xx和5xx的响应数量。
  • sent发送到此服务器的总字节数。
  • received从此服务器收到的总字节数。
  • fails尝试与服务器通信失败的总次数。
  • 由于达到max_fails阈值的失败尝试unavail次数,服务器无法用于客户端请求(状态“ unavail”)的次数。
  • health_checkschecks健康检查请求的总数。
  • fails健康检查失败的次数。unhealthy服务器变得不健康多少次(状态“ unhealthy”)。
  • last_passed布尔值,指示最后的运行状况检查请求是否成功并通过了测试。
  • downtime服务器在“ unavail”,“ checking”和“unhealthy“ 状态。downstart服务器变为“ unavail”,“ checking”或“ unhealthy” 的时间(自Epoch以来以毫秒为单位)。
  • selected上一次选择服务器处理请求(1.7.5)时的时间(从Epoch开始,以毫秒为单位)。header_time从服务器获取响应标头的平均时间(1.7.10)。
  • 在版本1.11.6之前,该字段仅在使用least_time负载平衡方法时可用。response_time从服务器获得完整响应的平均时间(1.7.10)。在版本1.11.6之前,该字段仅在使用least_time负载平衡方法时可用。
  • keepalive当前空闲保持连接的数量。
  • zombies当前从组中删除的服务器数量,但仍处理活动的客户端请求。
  • zone保持组的配置和运行时状态的共享内存区域的名称。
  • queue对于请求队列,提供以下数据:size队列中当前的请求数。
  • max_size同时可以在队列中请求的最大数量。
  • overflows由于队列溢出而被拒绝的请求总数。
  • caches对于每个缓存(由proxy_cache_path等配置):size缓存的当前大小。max_size配置中指定的缓存的最大大小限制。
  • cold指示“缓存加载器”进程是否仍在将数据从磁盘加载到缓存中的布尔值。hit,stale,updating,revalidatedresponses从缓存中读取的响应的总数(命中或由于proxy_cache_use_stale等引起的陈旧响应)。
  • bytes从缓存中读取的总字节数。
  • miss,expired,bypassresponses的响应的总数不从缓存(未命中,期满,或绕过由于proxy_cache_bypass和喜欢)。
  • bytes从代理服务器读取的总字节数。
  • responses_written写入缓存的响应总数。
  • bytes_written写入缓存的总字节数。
  • streamserver_zones对于每个status_zone:processing当前正在处理的客户端连接数。connections客户端接受的连接总数。
  • sessionstotal完成的客户端会话总数。
  • 2xx,4xx,5xx用状态代码2xx,4xx或5xx完成的会话数量。
  • discarded完成连接的总数而不创建会话。received从客户端收到的总字节数。
  • sent发送给客户端的总字节数。upstreams对于每个动态可配置组,提供以下数据:peers为每个服务器提供以下数据:服务器的idID。
  • server服务器的地址。
  • name服务器指令中指定的服务器的名称。
  • service服务器指令的服务参数值。backup指示服务器是否为备份服务器的布尔值。weight服务器的重量。state当前状态,可能是“ up”,“ down”,“unavail“,” checking“或” unhealthy“。active当前的连接数。max_conns服务器的max_conns限制。
  • connections转发到此服务器的客户端连接总数。
  • connect_time连接到上游服务器的平均时间。在版本1.11.6之前,该字段仅在使用least_time负载平衡方法时可用。
  • first_byte_time接收第一个字节数据的平均时间。在版本1.11.6之前,该字段仅在使用least_time负载平衡方法时可用。response_time接收最后一个字节数据的平均时间。在版本1.11.6之前,该字段仅在使用least_time负载平衡方法时可用。
  • sent发送到此服务器的总字节数。received从此服务器收到的总字节数。
  • fails尝试与服务器通信失败的总次数。由于达到max_fails阈值的失败尝试unavail次数,服务器无法用于客户端连接(状态“ unavail”)多少次。
  • health_checkschecks健康检查请求的总数。fails健康检查失败的次数。unhealthy服务器变得不健康多少次(状态“ unhealthy”)。
  • last_passed布尔值,指示最后的运行状况检查请求是否成功并通过了测试。
  • downtime服务器处于“ unavail”,“ checking”和“ unhealthy”状态的总时间。
  • downstart当服务器成为“ unavail”,“ checking”或“”时,时间(从Epoch开始以毫秒为单位)unhealthy”。
  • selected上次选择服务器处理连接时的时间(自Epoch起,以毫秒为单位)。
  • zombies当前从组中删除的服务器数量,但仍处理活动客户端连接。
  • zone保持组的配置和运行时状态的共享内存区域的名称。


三. 示例


http {
    upstream backend {
        zone http_backend 64k;
        server backend1.example.com weight=5;
        server backend2.example.com;
    }
    proxy_cache_path /data/nginx/cache_backend keys_zone=cache_backend:10m;
    server {
        server_name backend.example.com;
        location / {
            proxy_pass  http://backend;
            proxy_cache cache_backend;
            health_check;
        }
        status_zone server_backend;
    }
    server {
        listen 127.0.0.1;
        location /upstream_conf {
            upstream_conf;
        }
        location /status {
            status;
        }
        location = /status.html {
        }
    }
}
stream {
    upstream backend {
        zone stream_backend 64k;
        server backend1.example.com:12345 weight=5;
        server backend2.example.com:12345;
    }
    server {
        listen      127.0.0.1:12345;
        proxy_pass  backend;
        status_zone server_backend;
        health_check;
    }
}

使用此配置的状态请求示例:

http://127.0.0.1/status
http://127.0.0.1/status/nginx_version
http://127.0.0.1/status/caches/cache_backend
http://127.0.0.1/status/upstreams
http://127.0.0.1/status/upstreams/backend
http://127.0.0.1/status/upstreams/backend/peers/1
http://127.0.0.1/status/upstreams/backend/peers/1/weight
http://127.0.0.1/status/stream
http://127.0.0.1/status/stream/upstreams
http://127.0.0.1/status/stream/upstreams/backend
http://127.0.0.1/status/stream/upstreams/backend/peers/1
http://127.0.0.1/status/stream/upstreams/backend/peers/1/weight

简单的监控页面随此分发提供,/status.html在默认配置中以“ ”形式访问。它要求位置“ /status”和“ /status.html”按上图所示进行配置。


以上更多详解请大家关注nginx官方网站https://nginx.org/en/docs/


   以上就是我们今天的教程,如果本文对你有所帮助,欢迎关注点赞,分享给您身边的朋友。您的鼓励就是对我的最大动力。

相关文章
|
3月前
|
负载均衡 应用服务中间件 API
Nginx:location配置模块的用法(一)
Nginx:location配置模块的用法(一)
434 2
|
1月前
|
缓存 JavaScript 安全
nodejs里面的http模块介绍和使用
综上所述,Node.js的http模块是构建Web服务的基础,其灵活性和强大功能,结合Node.js异步非阻塞的特点,为现代Web应用开发提供了坚实的基础。
100 62
|
1月前
|
应用服务中间件 nginx C++
nginx的cgi模块
nginx的cgi模块
26 0
|
1月前
|
JSON API 开发者
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
15 0
|
1月前
|
移动开发 网络协议 C语言
详解 httptools 模块,一个 HTTP 解析器
详解 httptools 模块,一个 HTTP 解析器
26 0
|
3月前
|
缓存 应用服务中间件 nginx
安装nginx-http-flv-module模块
本文介绍如何为Nginx安装`nginx-http-flv-module`模块。此模块基于`nginx-rtmp-module`二次开发,不仅具备原模块的所有功能,还支持HTTP-FLV播放、GOP缓存、虚拟主机等功能。安装步骤包括:确认Nginx版本、下载相应版本的Nginx与模块源码、重新编译Nginx并加入新模块、验证模块安装成功。特别注意,此模块已包含`nginx-rtmp-module`功能,无需重复编译安装。
160 1
|
3月前
|
JSON API 数据格式
Python网络编程:HTTP请求(requests模块)
在现代编程中,HTTP请求几乎无处不在。无论是数据抓取、API调用还是与远程服务器进行交互,HTTP请求都是不可或缺的一部分。在Python中,requests模块被广泛认为是发送HTTP请求的最简便和强大的工具之一。本文将详细介绍requests模块的功能,并通过一个综合示例展示其应用。
|
3月前
|
负载均衡 应用服务中间件 Linux
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
|
3月前
|
缓存 应用服务中间件 API
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇(三)
47 3
|
3月前
|
缓存 前端开发 应用服务中间件
Nginx:location配置模块的用法(二)
Nginx:location配置模块的用法(二)
102 2
下一篇
无影云桌面