ngx_http_api_module 模块

ngx_http_api_module 模块 (1.13.3) 提供了用于访问各种状态信息、动态配置上游服务器组和管理键值对的REST API,而不需要重新配置 nginx。

注意:该模块取代了 ngx_http_status_module 和 ngx_http_upstream_conf_module 模块。

当使用 PATCH 或 POST 方法时,请确保负载不超过读取客户端请求体所需的缓冲区大小,否则可能返回 413 (request Entity Too Large) 错误。

注意:该模块作为我们商业订阅的一部分提供。

示例配置

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;
    }

    keyval_zone zone=one:32k state=one.keyval;
    keyval $arg_text $text zone=one;

    server {
        listen 127.0.0.1;

        location /api {
            api write=on;
            allow 127.0.0.1;
            deny all;
        }
    }
}

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;
    }
}

所有API请求都在URI中包含受支持的API版本。使用此配置的API请求示例:

http://127.0.0.1/api/7/
http://127.0.0.1/api/7/nginx
http://127.0.0.1/api/7/connections
http://127.0.0.1/api/7/http/requests
http://127.0.0.1/api/7/http/server_zones/server_backend
http://127.0.0.1/api/7/http/caches/cache_backend
http://127.0.0.1/api/7/http/upstreams/backend
http://127.0.0.1/api/7/http/upstreams/backend/servers/
http://127.0.0.1/api/7/http/upstreams/backend/servers/1
http://127.0.0.1/api/7/http/keyvals/one?key=arg1
http://127.0.0.1/api/7/stream/
http://127.0.0.1/api/7/stream/server_zones/server_backend
http://127.0.0.1/api/7/stream/upstreams/
http://127.0.0.1/api/7/stream/upstreams/backend
http://127.0.0.1/api/7/stream/upstreams/backend/servers/1

指令

api 指令

语 法:api [write=on|off];
默认值:—
上下文:location

打开周围 location 的 REST API 接口,应限制对该 location 的访问。

write 参数决定 API 是只读还是读写。默认情况下,API 是只读的。

所有 API 请求都应在 URI 中包含受支持的 API 版本。如果请求 URI 等于 location 前缀,则返回支持的 API 版本列表。当前 API 版本为 “7”。

请求行中的可选 “fields” 参数指定将输出请求对象的哪些字段:

http://127.0.0.1/api/7/nginx?fields=version,build 

status_zone 指令

语 法:status_zone zone;
默认值:—
上下文:server, location, if in location

该指令出现在 1.13.12 版中。

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

从 1.17.0 开始,可以按 location 收集状态信息。特殊值 off 禁用嵌套 location 块中的统计信息收集。注意,统计信息是在处理结束的位置上下文中收集的。如果在请求处理期间发生内部重定向,则可能与原始位置不同。

兼容性

版本 7 中添加了每个 HTTP upstream、server 区域和 location 区域的响应中的代码数据。

  • /stream/limit_conns/ 数据是在第6版中添加的。

  • /http/limit_conns/ 数据是在第6版中添加的。

  • /http/limit_reqs/ 数据是在第6版中添加的。

  • 从第5版开始,可以设置或更改键值对的 “expire” 参数。

  • /resolvers/ 数据是在第5版中添加的。

  • /http/location_zones/ 数据是在第5版中添加的。

  • nginx 错误对象的 path 和 method 字段在第4版中被移除。这些字段在早期的 api 版本中继续存在,但显示为空值。

  • /stream/zone_sync/ 数据是在第3版中添加的。

  • 在版本 2 中添加了 drain 参数。

  • /stream/keyvals/ 数据是在第2版中添加的。

API 接口列表

关于接口列表的详细信息,请访问 nginx 官网。地址如下:

http://nginx.org/en/docs/http/ngx_http_api_module.html#endpoints

响应对象

  • nginx 对象关于 nginx 的一般信息

  • Processes 对象:异常终止和重新生成的子进程总数

  • Connections 对象:接受、丢弃、活动和空闲连接的数量

  • SSL 对象:成功的 SSL 握手总数、握手失败的总数、握手期间重新使用的会话总数

关于响应对象定义,请查看 nginx 官网。地址如下:

http://nginx.org/en/docs/http/ngx_http_api_module.html#definitions

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号