模块 ngx_mgmt_module
模块 ngx_mgmt_module
可以将当前 nginx 安装情况报告给 NGINX 管理套件实例管理器 (1.25.3)。默认情况下,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格式证书文件。
语法: | ssl_certificate_key |
---|---|
默认值: | — |
上下文: | mgmt |
指定一个 PEM 格式的密钥文件,用于身份验证到 Instance Manager。
语法: | ssl_ciphers |
---|---|
默认值: |
ssl_ciphers DEFAULT; |
上下文: | mgmt |
指定请求到 Instance Manager 的启用密码。密码格式按照 OpenSSL 库理解的格式指定。
完整列表可以使用“openssl ciphers
”命令查看。
语法: | ssl_crl |
---|---|
默认值: | — |
上下文: | mgmt |
指定一个 PEM 格式的已吊销证书(CRL)文件,用于验证 Instance Manager 的证书。
语法: | ssl_name |
---|---|
默认值: |
ssl_name ssl_name host; |
上下文: | mgmt |
允许覆盖用于验证 Instance Manager 证书的服务器名称,并在与 Instance Manager 建立连接时通过 SNI 传递。
语法: | ssl_password_file |
---|---|
默认值: | — |
上下文: | mgmt |
指定一个包含密码的文件,用于加载密钥时逐行尝试每个密码。密码用于密钥。
语法: | ssl_protocols [ |
---|---|
默认值: |
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; |
上下文: | mgmt |
为请求到 Instance Manager 启用指定的协议。
语法: | ssl_server_name |
---|---|
默认值: |
ssl_server_name off; |
上下文: | mgmt |
在与 Instance Manager 建立连接时,启用或禁用通过TLS Server Name Indication extension(SNI,RFC 6066)传递服务器名称。
语法: | ssl_trusted_certificate |
---|---|
默认值: | — |
上下文: | mgmt |
指定一个用于验证实例管理器证书的 PEM 格式的受信任 CA 证书文件。
语法: | ssl_verify |
---|---|
默认值: |
ssl_verify off; |
上下文: | mgmt |
启用或禁用对实例管理器证书的验证。
语法: | ssl_verify_depth |
---|---|
默认值: |
ssl_verify_depth 1; |
上下文: | mgmt |
设置实例管理器证书链的验证深度。
语法: | usage_report [ |
---|---|
默认值: | — |
上下文: | mgmt |
设置实例管理器安装的 IP 的 地址
和 端口
,或 UNIX 域套接字的 路径
,默认为 nginx-mgmt.local
。 interval
设置报告到实例管理器的间隔,默认为 30 分钟。
语法: | uuid_file |
---|---|
默认值: |
uuid_file logs/uuid; |
上下文: | mgmt |
指定一个保存 nginx 实例 ID 的 文件
。
示例:
uuid_file /var/lib/nginx/nginx.id; # path for Linux uuid_file /var/db/nginx/nginx.id; # path for FreeBSD
应避免直接更改文件内容。