Nginx工作进程未正常重启带来的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx工作进程未正常重启带来的问题相关的知识,希望对你有一定的参考价值。

参考技术A         公司新上线了一个系统,通过nginx进行反向代理,系统上线后,偶尔有请求出现请求找不到,响应 404 的问题。仅新系统会出现该问题,以前部署的系统没有;错误的请求随机出现,并不固定为某个特定的请求地址。Nginx部分配置如下:

        跟踪日志发现无论全局错误日志还是新系统错误日志中,都没有对应记录,新系统访问日志中只有正常请求的记录,没有错误的记录。错误请求只有在全局访问日志文件中才有记录。最终在查看Nginx进程状态时,竟发现多了4个工作进程。

        仔细观察发现多出来的进程是很久以前启动的了,执行 nginx -s reload 命令,异常进程也不会终止,于是猜测错误请求是由异常的进程在处理,而异常的进程是很久以前启动的,并没有加载新系统的配置文件,导致报错,同时这也是为什么错误记录只存在全局访问日志中的原因。 kill 掉异常进程后,果然没有再出现 404 的问题了。

        至于Nginx进程出现异常的原因我就没有再深究了,网上有人不建议使用 nginx -s reload 命令重启nginx,有时候会无效,公司Nginx在不久做过升级,或许是升级操作不当导致的也说不定。

Nginx----原理

原理

 

 

 

 

master-workers的机制的好处
  首先,对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。其次,采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master 进程则很快启动新的worker 进程。当然,worker进程的异常退出,肯定是程序有bug了,异常退出,会导致当前worker 上的所有请求失败,不过不会影响到所有请求,所以降低了风险。

  正是由于多个wrok,我们的热部署才可以实现

 

以上是关于Nginx工作进程未正常重启带来的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何用linux命令查看nginx是不是在正常运行

myeclipse中的weblogic 服务未正常关闭问题解决。

nginx - 超时后不正常的工作人员终止

重启nginx

nginx重启 failed (98: Address already in use)

shell习题第13题:监控nginx进程