关于端口切换的问题
来源:3-6 Nginx热部署完整步骤演示

易萧
2022-03-09
发送SIGUSR2后新老master进程共存。
1、如何访问新的master,不然怎么测试它是否有问题?
2、新的master并没有监听一个新的端口,甚至kill -s SIGWINCH后,仍然是老master占用端口,此时用户访问是通过老master转发给新master处理吗?
3、发送SIGQUIT退出老master后,端口是可以直接继承(Linux有相关的机制吗?)还是说先释放端口后,新master再去监听?如果是后者,那么端口换绑是否有一段空白期会导致用户无法访问。
写回答
1回答
-
酷田
2022-04-02
热部署不需要重新启动新的监听端口,nginx 的热部署和其并发模型有着密不可分的关系。说白了,就是因为 master 进程的关系。当通知 ngnix 重读配置文件的时候,master 进程会进行语法错误的判断。如果存在语法错误的话,返回错误,不进行装载;如果配置文件没有语法错误,那么 ngnix 也不会将新的配置调整到所有 worker 中。而是,先不改变已经建立连接的 worker,等待 worker 将所有请求结束之后,将原先在旧的配置下启动的 worker 杀死,然后使用新的配置创建新的 worker
00
相似问题