Nginx中文文档
DocsHome
  • 贡献导引
  • 介绍
    • 安装 nginx
    • 从源码构建 nginx
    • 初学者指南
    • 管理指南
    • 控制 nginx
    • 连接处理方式
    • 设置哈希
    • 调试日志
    • 记录日志到 syslog
    • 配置文件度量单位
    • 命令行参数
    • Windows 下的 nginx
    • QUIC 和 HTTP/3 支持
    • nginx 如何处理请求
    • 服务器名称
    • 使用 nginx 作为 HTTP 负载均衡器
    • 配置 HTTPS 服务器
    • nginx 如何处理 TCP/UDP 会话
    • 关于 nginScript
  • 其他
    • Linux 软件包
  • How-To
    • 在 Win32 平台上使用 Visual C 构建 nginx
    • 设置 Amazon EC2 的 Nginx Plus 环境
    • 使用 DTrace pid 提供程序调试 nginx
    • 转换重写规则
    • WebSocket 代理
  • 开发
    • 贡献指南
    • 开发指南
  • 模块参考
  • 核心功能
    • HTTP
      • ngx_http_core_module
      • ngx_http_access_module
      • ngx_http_addition_module
      • ngx_http_api_module
      • ngx_http_auth_basic_module
      • ngx_http_auth_jwt_module
      • ngx_http_auth_request_module
      • ngx_http_autoindex_module
      • ngx_http_browser_module
      • ngx_http_charset_module
      • ngx_http_dav_module
      • ngx_http_empty_gif_module
      • ngx_http_f4f_module
      • ngx_http_fastcgi_module
      • ngx_http_flv_module
      • ngx_http_geo_module
      • ngx_http_geoip_module
      • ngx_http_grpc_module
      • ngx_http_gunzip_module
      • ngx_http_gzip_module
      • ngx_http_gzip_static_module
      • ngx_http_headers_module
      • ngx_http_hls_module
      • ngx_http_image_filter_module
      • ngx_http_index_module
      • ngx_http_js_module
      • ngx_http_keyval_module
      • ngx_http_limit_conn_module
      • ngx_http_limit_req_module
      • ngx_http_log_module
      • ngx_http_map_module
      • ngx_http_memcached_module
      • ngx_http_mirror_module
      • ngx_http_mp4_module
      • ngx_http_perl_module
      • ngx_http_proxy_module
      • ngx_http_random_index_module
      • ngx_http_realip_module
      • ngx_http_referer_module
      • ngx_http_rewrite_module
      • ngx_http_scgi_module
      • ngx_http_secure_link_module
      • ngx_http_session_log_module
      • ngx_http_slice_module
      • ngx_http_spdy_module(过时)
      • ngx_http_split_clients_module
      • ngx_http_ssi_module
      • ngx_http_ssl_module
      • ngx_http_status_module(过时)
      • ngx_http_stub_status_module
      • ngx_http_sub_module
      • ngx_http_upstream_module
      • ngx_http_upstream_conf_module
      • ngx_http_upstream_hc_module
      • ngx_http_userid_module
      • ngx_http_uwsgi_module
      • ngx_http_v2_module
      • ngx_http_xslt_module
    • Mail
      • ngx_mail_core_module
      • ngx_mail_auth_http_module
      • ngx_mail_proxy_module
      • ngx_mail_ssl_module
      • ngx_mail_imap_module
      • ngx_mail_pop3_module
      • ngx_mail_smtp_module
    • Stream
      • ngx_stream_core_module
      • ngx_stream_access_module
      • ngx_stream_geo_module
      • ngx_stream_geoip_module
      • ngx_stream_js_module
      • ngx_stream_keyval_module
      • ngx_stream_limit_conn_module
      • ngx_stream_log_module
      • ngx_stream_map_module
      • ngx_stream_proxy_module
      • ngx_stream_realip_module
      • ngx_stream_return_module
      • ngx_stream_split_clients_module
      • ngx_stream_ssl_module
      • ngx_stream_ssl_preread_module
      • ngx_stream_upstream_module
      • ngx_stream_upstream_hc_module
      • ngx_stream_zone_sync_module
    • 其他
      • ngx_google_perftools_module
由 GitBook 提供支持
在本页
  • 示例配置
  • 指令
  • zone_sync
  • zone_sync_buffers
  • zone_sync_connect_retry_interval
  • zone_sync_connect_timeout
  • zone_sync_interval
  • zone_sync_recv_buffer_size
  • zone_sync_server
  • zone_sync_ssl
  • zone_sync_ssl_certificate
  • zone_sync_ssl_certificate_key
  • zone_sync_ssl_ciphers
  • zone_sync_ssl_crl
  • zone_sync_ssl_name
  • zone_sync_ssl_password_file
  • zone_sync_ssl_protocols
  • zone_sync_ssl_server_name
  • zone_sync_ssl_trusted_certificate
  • zone_sync_ssl_verify
  • zone_sync_ssl_verify_depth
  • zone_sync_timeout
  • API 端点
  • 启动、停止、移除集群节点
  • 原文档
  1. 核心功能
  2. Stream

ngx_stream_zone_sync_module

上一页ngx_stream_upstream_hc_module下一页其他

最后更新于1年前

示例配置

最小化配置:

http {
    ...

    upstream backend {
       server backend1.example.com:8080;
       server backend2.example.com:8081;

       sticky learn
              create=$upstream_cookie_examplecookie
              lookup=$cookie_examplecookie
              zone=client_sessions:1m sync;
    }

    ...
}

stream {
    ...


    server {
        zone_sync;

        listen 127.0.0.1:12345;

        # cluster of 2 nodes
        zone_sync_server a.example.com:12345;
        zone_sync_server b.example.com:12345;

    }

一个启用了 SSL 且使用 DNS 定义群集成员的更复杂配置:

...

stream {
    ...

    resolver 127.0.0.1 valid=10s;

    server {
        zone_sync;

        # the name resolves to multiple addresses that correspond to cluster nodes
        zone_sync_server cluster.example.com:12345 resolve;

        listen 127.0.0.1:4433 ssl;

        ssl_certificate     localhost.crt;
        ssl_certificate_key localhost.key;

        zone_sync_ssl on;

        zone_sync_ssl_certificate     localhost.crt;
        zone_sync_ssl_certificate_key localhost.key;
    }
}

指令

zone_sync

-
说明

语法

zone_sync file;

默认

——

上下文

server

zone_sync_buffers

-
说明

语法

zone_sync_buffers number size;

默认

zone_sync_buffers 8 4k|8k

上下文

stream、server

为每个用于推送区域内容的区域缓冲区设置数量(number)和大小(size)。默认情况下,缓冲区大小等于一个内存页。根据平台的不同,可能是 4K 或 8K。

单个缓冲区必须有足够大的容量以容纳要同步的每个区域的条目。

zone_sync_connect_retry_interval

-
说明

语法

zone_sync_connect_retry_interval time;

默认

zone_sync_connect_retry_interval 1s;

上下文

stream、server

定义到另一个群集节点的连接尝试间隔时间。

zone_sync_connect_timeout

-
说明

语法

zone_sync_connect_timeout time;

默认

zone_sync_connect_timeout 5s;

上下文

stream、server

定义与另一个群集节点建立连接的超时时间。

zone_sync_interval

-
说明

语法

zone_sync_interval time;

默认

zone_sync_interval 1s;

上下文

stream、server

定义共享内存区域的轮询更新时间间隔。

zone_sync_recv_buffer_size

-
说明

语法

zone_sync_recv_buffer_size size;

默认

zone_sync_recv_buffer_size 4k|8k;

上下文

stream、server

zone_sync_server

-
说明

语法

zone_sync_server address [resolve];

默认

——

上下文

server

定义集群节点的地址(address)。该地址可以指定为一个带有必须端口的域名或 IP 地址,也可以指定为以 unix: 为前缀的 UNIX 域套接字路径。解析为多个 IP 地址的域名一次定义了多个节点。

resolve 参数指示 nginx 监视与该节点的域名对应的 IP 地址的变更,并自动修改配置,而无需重新启动 nginx。

可以动态地将集群节点指定为带有 resolve 参数的单个 zone_sync_server 指令,也可以将其静态指定为一系列不带参数的指令。

每个集群节点只需指定一次。

所有集群节点应使用相同的配置。

stream {
    resolver 10.0.0.1;

    server {
        zone_sync;
        zone_sync_server cluster.example.com:12345 resolve;
        ...
    }
}

zone_sync_ssl

-
说明

语法

zone_sync_ssl on | off;

默认

zone_sync_ssl off;

上下文

stream、server

连接到另一个集群服务器启用 SSL/TLS 协议。

zone_sync_ssl_certificate

-
说明

语法

zone_sync_ssl_certificate file;

默认

——

上下文

stream、server

指定一个 PEM 格式的证书文件,用于对另一个集群服务器进行身份验证。

zone_sync_ssl_certificate_key

-
说明

语法

zone_sync_ssl_certificate_key file;

默认

——

上下文

stream、server

指定一个 PEM 格式的密钥文件,用于对另一个集群服务器进行身份验证。

zone_sync_ssl_ciphers

-
说明

语法

zone_sync_ssl_ciphers ciphers;

默认

zone_sync_ssl_ciphers DEFAULT;

上下文

stream、server

指定用于连接到另一个群集服务器启用的密码算法。仅支持 OpenSSL 库的密码算法。

可以使用 openssl ciphers 命令查看完整支持列表。

zone_sync_ssl_crl

-
说明

语法

zone_sync_ssl_crl file;

默认

——

上下文

stream、server

指定一个 PEM 格式的吊销证书(CRL)文件,该文件用于验证另一个群集服务器的证书。

zone_sync_ssl_name

-
说明

语法

zone_sync_ssl_name name;

默认

zone_sync_ssl_name host from zone_sync_server;

上下文

stream、server

提示

该指令在 1.15.7 版本中出现

zone_sync_ssl_password_file

-
说明

语法

zone_sync_ssl_password_file file;

默认

——

上下文

stream、server

zone_sync_ssl_protocols

-
说明

语法

zone_sync_ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2] [TLSv1.3];

默认

zone_sync_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

上下文

stream、server

为连接到另一个集群服务器启用指定的协议。

zone_sync_ssl_server_name

-
说明

语法

zone_sync_ssl_server_name on | off;

默认

zone_sync_ssl_server_name off;

上下文

stream、server

提示

该指令在 1.15.7 版本中出现

zone_sync_ssl_trusted_certificate

-
说明

语法

zone_sync_ssl_trusted_certificate file;

默认

——

上下文

stream、server

zone_sync_ssl_verify

-
说明

语法

zone_sync_ssl_verify on | off;

默认

zone_sync_ssl_verify off;

上下文

stream、server

启用或禁用对另一个集群服务器证书的验证。

zone_sync_ssl_verify_depth

-
说明

语法

zone_sync_ssl_verify_depth number;

默认

zone_sync_ssl_verify_depth 1;

上下文

stream、server

设置其他集群服务器证书链的验证深度。

zone_sync_timeout

-
说明

语法

zone_sync_timeout timeout;

默认

zone_sync_timeout 5s;

上下文

stream、server

设置在连接到另一个集群节点时两次连续读取或写入操作之间的超时时间。如果在此时间内没有数据传输,则连接将关闭。

API 端点

启动、停止、移除集群节点

要启动新节点,请更新集群主机名的 DNS 记录,添加新节点的 IP 地址,然后启动实例。新节点将从 DNS 或静态配置中发现其他节点,并将开始向其发送更新。其他节点最终将使用 DNS 查找新节点,并开始向其推送更新。如果是静态配置,则需要重新加载其他节点才能将更新发送到新节点。

要停止节点,请将 QUIT 信号发送到实例。该节点将完成区域同步并正常关闭打开的连接。

要删除节点,请更新集群主机名的 DNS 记录,删除该节点的 IP 地址。所有其他节点最终将发现该节点已删除,关闭了与该节点的连接,并且不再尝试连接到该节点。删除节点后,可以按上述停止节点的步骤将其停止。在静态配置的情况下,需要重新加载其他节点以停止向已删除的节点发送更新。

原文档

ngx_stream_zone_sync_module 模块(1.13.8)为同步群集节点之间的内容提供了必要的支持。要为特定区域启用同步,相应的模块必须支持此功能。目前,可以同步 HTTP 会话,有关的信息以及 和 中的键值对。

此模块为部分。

启用群集节点间共享内存区域同步。群集节点使用 指令定义。

为每个连接设置接收缓冲区的大小(size),用于解析同步消息的传入流。缓冲区大小必须等于或大于 之一。 默认情况下,缓冲区大小等于 大小(size)乘以 number。

为了使 resolve 参数生效,必须在 块中指定 指令。例如:

与集群服务器建立连接时,允许覆盖用于集群服务器证书并通过 传递的服务器名称。

默认情况下,使用 地址的主机部分,或者使用解析得到的 IP 地址(如果指定了 参数)。

指定一个存储有口令的文件,每个口令独占一行。加载密钥时依次尝试这些口令。

与其他集群服务器建立连接时,启用或禁用通过 (SNI,RFC 6066)传递服务器名称。

指定一个 PEM 格式的受信 CA 证书文件,该文件用于另一台集群服务器的证书。

可通过 API 端点获得节点的同步状态,该端点返回指标。

商业订阅
TLS 服务器名称指示扩展
/stream/zone_sync/
以下
http://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html
示例配置
指令
zone_sync
zone_sync_buffers
zone_sync_connect_retry_interval
zone_sync_connect_timeout
zone_sync_interval
zone_sync_recv_buffer_size
zone_sync_server
zone_sync_ssl
zone_sync_ssl_certificate
zone_sync_ssl_certificate_key
zone_sync_ssl_ciphers
zone_sync_ssl_crl
zone_sync_ssl_name
zone_sync_ssl_password_file
zone_sync_ssl_protocols
zone_sync_ssl_server_name
zone_sync_ssl_trusted_certificate
zone_sync_ssl_verify
zone_sync_ssl_verify_depth
zone_sync_timeout
API 端点
启动、停止、移除集群节点
zone_sync_server
zone_sync_buffers
zone_sync_buffers
验证
SNI
zone_sync_server
resolve
密钥
验证
大流量 HTTP 请求
http
stream
stream
resolver
共享内存区域
粘性