手把手教你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/


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

相关文章
|
2月前
|
应用服务中间件 nginx
Nginx安装nginx-rtmp-module模块
【2月更文挑战第4天】 nginx中的模块虽然就是类似插件的概念,但是它无法像VsCode那样轻松的安装扩展。 nginx要安装其它模块必须同时拿到nginx源代码和模块源代码,然后手动编译,将模块打到nginx中,最终生成一个名为nginx的可执行文件。
89 6
|
4月前
|
应用服务中间件 nginx
百度搜索:蓝易云【利用nginx内置ngx_http_mirror_module模块实现流量复制及流量放大】
以上就是使用Nginx内置 `ngx_http_mirror_module`模块实现流量复制和流量放大的简要示例。通过合理配置和利用该模块,可以实现更复杂的流量控制和调试需求。
63 1
|
4月前
|
应用服务中间件 nginx
百度搜索:蓝易云【HTTP请求是如何关联Nginx server{}块的?】
总结来说,Nginx中的 `server{}`块用于关联HTTP请求和虚拟主机,通过配置不同的 `server{}`块,可以实现多个域名或IP地址的请求分发和处理。这样,Nginx可以根据不同的请求来提供不同的服务和内容。
38 0
|
5月前
|
应用服务中间件 Linux nginx
nginx+nginx-http-flv-module
nginx+nginx-http-flv-module
209 1
|
3月前
|
缓存 负载均衡 应用服务中间件
如何在 CentOS 7 上为 NGINX 安装开源 HTTP 加速器:Varnish
如何在 CentOS 7 上为 NGINX 安装开源 HTTP 加速器:Varnish
72 1
如何在 CentOS 7 上为 NGINX 安装开源 HTTP 加速器:Varnish
|
5天前
|
网络协议 应用服务中间件 nginx
nginx 302 301 设置 url 转跳 nginx 资源重定向 nginx tcp 和 http 转发
nginx 代理后端网站,和 网站资源目录重定向到其他连接地址
40 3
|
8天前
|
Ubuntu 应用服务中间件 nginx
ubuntu编译安装nginx及安装nginx_upstream_check_module模块
以上是编译安装Nginx和安装 `nginx_upstream_check_module`模块的基本步骤。根据你的需求和环境,你可能需要进一步配置Nginx以满足特定的要求。
19 3
|
2月前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
34 0
|
2月前
|
前端开发 应用服务中间件 网络安全
http转为https,ssl证书安装及nginx配置
http转为https,ssl证书安装及nginx配置
58 1
|
3月前
|
消息中间件 关系型数据库 MySQL
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
87 0