作者回复: 谢谢分享!
作者回复: 因为是父子进程,所以可以.
作者回复: 是的,但是监听不代表会处理。listen以后,还需要通过epoll_ctl加入到epoll中,进程才会处理。而master进程是不会执行这一步的,如果你熟悉源代码,你可以看ngx_event_process_init函数,它只有在worker进程才执行,它负责把监听的fd加入epoll
作者回复: 1、确认此次升级正常后,就可以关闭。
2、关闭以后不能回滚,如果想回滚,就需要再走一次热升级流程,用备份好的老nginx文件作为新的热升级文件。
作者回复: 第5步,就是收尾,此时进程包括:老master、老worker、新worker,而退出老master使用QUIT信号没问题
作者回复: 父进程关闭,不会导致子进程关闭的。所以没有失效期的。
作者回复: 之前的参数必须全部携带!!
因为,configure会清理掉Makefile文件,不会保留上次编译时携带的参数、选项信息。
作者回复: 1、旧进程在处理。
2、不用,老master只要还在,它只需要fork出worker子进程即可。
作者回复: 不需要,向master进程发QUIT后,master会向其子进程worker也发送QUIT
作者回复: 就本步骤而言不需要,因为老master进程一直没退,它用的就是老二进制文件。
出于后续维护考虑,你应该把老文件移回来
作者回复: 不是的,不可能同时监听同一端口,老master会把listen的句柄通过epoll_ctl从epoll中移除,不再监听80或者443端口。
作者回复: 查看error.log定位。
作者回复: 通常应保持一致。这取决于新版本更新了哪些模块或者参数。
作者回复: 这要根据你改了哪些配置来决定,例如有些配置就是为了升级nginx,那么要换回来;有些配置则是为了其他原因修改,不需要换回来。
作者回复: 正常升级后,应通过kill -QUIT信号今年老的master进程。