有没有办法动态配置 nginx(或其他快速反向代理)?

2024-03-24

假设我们有几个相同的节点,它们是某个 n 层服务的应用程序服务器。假设我们使用 Apache ZooKeeper 来保存分布式应用程序的所有配置。另外,我们在此应用程序前面有一个 nginx 作为负载均衡器和反向代理。

假设我们执行的命令仅更改节点 1 上的数据,并且在一段时间内节点 2 与节点 1 不同。我们希望代理将所有特殊请求(需要特定数据)重定向到节点 1,直到所有信息都迁移到节点 2 并且节点 2 具有与节点 1 相同的数据。

有没有办法让 nginx(或其他代理)从 Apache ZooKeeper 读取其配置?或者更广泛:有没有什么方法可以有效地动态切换代理配置?当然,它应该在整个系统没有(或最少)停机时间的情况下完成 - 所以重新启动 nginx 不是一个选择。


Nginx 有两种更改配置的方法:

  • HUP向主进程发送信号会导致“重新加载”。 Nginx 启动一堆新的worker,并让旧的worker 优雅地关闭,即它们完成现有的请求。有no服务中断。这种配置更改方法非常轻量且快速,但有一些限制:您无法更改缓存区域或重新编译 Perl 脚本。

  • USR2信号,那么WINCH进而QUIT主进程导致“可执行文件升级”,这个序列可以完全重新读取整个配置,甚至升级 Nginx 可执行文件。它还会重新加载磁盘缓存(这可能很耗时)。该方法的结果是no服务也中断。

官方文档 http://nginx.org/en/docs/control.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法动态配置 nginx(或其他快速反向代理)? 的相关文章

随机推荐