模块 ngx_mgmt_module
ngx_mgmt_module
模块允许向 NGINX Management Suite 实例管理器 (1.25.3) 报告当前 nginx 安装。默认情况下,nginx 每 30 分钟使用 SSL 连接向位于 nginx-mgmt.local
的实例管理器发送使用情况信息。除非配置了 自定义解析器,否则使用系统解析器,并且仅在 加载 配置时调用一次。
此模块作为我们 商业订阅 的一部分提供。
示例配置
mgmt { usage_report endpoint=nginx-mgmt.local interval=30m; resolver DNS_IP; uuid_file /var/lib/nginx/nginx.id; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers DEFAULT; ssl_certificate client_cert.pem; ssl_certificate_key client_cert.key; # configure server certificate verification # to validate the authenticity of NMS ssl_trusted_certificate trusted_ca_cert.crt; ssl_verify on; ssl_verify_depth 2; }
指令
语法 |
connect_timeout |
---|---|
默认值 |
connect_timeout 15s; |
上下文 |
mgmt |
定义与实例管理器建立连接的超时时间。
语法 |
mgmt { ... } |
---|---|
默认值 | — |
上下文 |
main |
提供指定管理服务器指令的配置文件上下文。
语法 |
read_timeout |
---|---|
默认值 |
read_timeout 60s; |
上下文 |
mgmt |
定义从实例管理器读取响应的超时时间。超时时间仅在两次连续读取操作之间设置,而不是针对整个响应的传输设置。如果实例管理器在此时间内没有任何传输,则连接将关闭。
语法 |
resolver |
---|---|
默认值 | — |
上下文 |
mgmt |
配置用于将实例管理器名称解析为地址的名称服务器,例如
resolver 127.0.0.1 [::1]:5353;
地址可以指定为域名或 IP 地址,并带有可选端口。如果未指定端口,则使用端口 53。名称服务器以循环方式进行查询。
默认情况下,nginx 在解析时将同时查找 IPv4 和 IPv6 地址。如果不需要查找 IPv4 或 IPv6 地址,则可以指定 ipv4=off
或 ipv6=off
参数。
默认情况下,nginx 使用响应的 TTL 值缓存答案。可选的 valid
参数允许覆盖它
resolver 127.0.0.1 [::1]:5353 valid=30s;
为防止 DNS 欺骗,建议在安全可靠的本地受信任网络中配置 DNS 服务器。
可选的 status_zone
参数启用在指定的 zone
中 收集 DNS 服务器请求和响应的统计信息。
语法 |
resolver_timeout |
---|---|
默认值 |
resolver_timeout 30s; |
上下文 |
mgmt |
设置名称解析超时时间。
语法 |
send_timeout |
---|---|
默认值 |
send_timeout 60s; |
上下文 |
mgmt |
设置向实例管理器发送请求的超时时间。超时时间仅在两次连续写入操作之间设置,而不是整个请求的传输。如果实例管理器在此时间内未收到任何内容,则关闭连接。
语法 |
ssl |
---|---|
默认值 |
ssl on; |
上下文 |
mgmt |
为与实例管理器的所有连接启用 HTTPS 协议。
语法 |
ssl_certificate |
---|---|
默认值 | — |
上下文 |
mgmt |
指定用于向实例管理器进行身份验证的 PEM 格式证书的 file
。
语法 |
ssl_certificate_key |
---|---|
默认值 | — |
上下文 |
mgmt |
指定用于向实例管理器进行身份验证的 PEM 格式密钥的 file
。
语法 |
ssl_ciphers |
---|---|
默认值 |
ssl_ciphers DEFAULT; |
上下文 |
mgmt |
指定向实例管理器发送请求时启用的密码。密码以 OpenSSL 库可以理解的格式指定。
可以使用“openssl ciphers
”命令查看完整列表。
语法 |
ssl_crl |
---|---|
默认值 | — |
上下文 |
mgmt |
指定 PEM 格式的已吊销证书 (CRL) 的 file
,用于 验证 实例管理器的证书。
语法 |
ssl_name |
---|---|
默认值 |
ssl_name ssl_name host; |
上下文 |
mgmt |
允许覆盖用于 验证 实例管理器证书的服务器名称,并在与实例管理器建立连接时通过 SNI 传递。
语法 |
ssl_password_file |
---|---|
默认值 | — |
上下文 |
mgmt |
指定一个 file
,其中包含 密钥 的密码,其中每个密码都在单独的行中指定。加载密钥时会依次尝试密码。
语法 |
ssl_protocols [ |
---|---|
默认值 |
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; |
上下文 |
mgmt |
为向实例管理器发送的请求启用指定的协议。
语法 |
ssl_server_name |
---|---|
默认值 |
ssl_server_name off; |
上下文 |
mgmt |
在与实例管理器建立连接时启用或禁用通过 TLS 服务器名称指示扩展 (SNI,RFC 6066) 传递服务器名称。
语法 |
ssl_trusted_certificate |
---|---|
默认值 | — |
上下文 |
mgmt |
指定 PEM 格式的可信 CA 证书的 file
,用于 验证 实例管理器的证书。
语法 |
ssl_verify |
---|---|
默认值 |
ssl_verify off; |
上下文 |
mgmt |
启用或禁用实例管理器证书的验证。
语法 |
ssl_verify_depth |
---|---|
默认值 |
ssl_verify_depth 1; |
上下文 |
mgmt |
设置实例管理器证书链中的验证深度。
语法 |
usage_report [ |
---|---|
默认值 | — |
上下文 |
mgmt |
设置 IP 的 address
和 port
,或安装实例管理器的 UNIX 域套接字的 path
,默认为 nginx-mgmt.local
。interval
设置向实例管理器发送报告之间的间隔,默认为 30 分钟。
语法 |
uuid_file |
---|---|
默认值 |
uuid_file logs/uuid; |
上下文 |
mgmt |
指定一个 file
来保存 nginx 实例的 ID。
示例
uuid_file /var/lib/nginx/nginx.id; # path for Linux uuid_file /var/db/nginx/nginx.id; # path for FreeBSD
避免直接更改文件内容。