NGINX随机停止工作,需要手动重启

时间:2018-05-21 14:18:18

标签: node.js wordpress nginx ubuntu-16.04

我有一个问题,我不知道如何解决问题。我的设置:

  • 亚马逊EC2(t2.medium)运行Ubuntu Linux 16.04(完全最新)
  • NGINX 1.10.3
  • 运行Node JS(Express)的8个网站绑定到端口 3000-3007到pm2,NGINX作为反向代理 (虚拟主机文件中的proxy_pass
  • PHP 7.1(为Wordpress网站供电)
  • Node站点使用Wordpress REST API(来自Wordpress站点)来提供内容

问题:

似乎每隔几天NGINX就会停止工作。我可以说,因为在运行sudo service nginx restart之前我无法访问Wordpress站点。它似乎不是一个PHP问题,因为如果我重新启动PHP,Wordpress站点在NGINX重启之前不会重新上线。服务器登录/var/log/nginx似乎没有提供任何见解,我不确定如何解决问题。

关于从哪里开始的任何想法?我可以设置的任何监控(除了基本的#34;网站下来")可能提供洞察力?也许有一些设置可以在NGINX中切换以处理过度使用(如果这是问题)?

2 个答案:

答案 0 :(得分:2)

在certbot中使用nginx时遇到了类似的问题。我在Ubuntu 16.04 LTS下托管,而certbot已经过时(0.10.2)。

作为described here,此版本的certbot在发出证书时遇到问题。标准命令不起作用,必须使用specific commands

Certbot带有一个自动更新程序,它将自动更新证书。此更新程序无法使用替代方法,并且在操作后也无法启动nginx服务。

我所做的是禁用此服务。 /etc/systemd/system/timers.target.wants/certbot.timer有一个文件。编辑此文件,并注释启用计时器的行。

[Unit]
Description=Run certbot twice daily

[Timer]
OnCalendar=*-*-* 00,12:00:00
Persistent=true

#[Install]
#WantedBy=timers.target

现在,您将必须手动续订证书。

答案 1 :(得分:0)

如何为nginx指定上游服务器?

您应注意,除非您在proxy_pass中与http://nginx.org/r/proxy_pass指令一起使用变量,否则http://nginx.org/r/resolver通常会在启动时缓存域名解析。

这意味着名称的解析可能会过时且不正确,从而导致不再加载页面。

解决方案是在proxy_pass中使用变量,并指定resolver用于正在进行的解决方案。

否则,错误日志对于提供有关停机原因的信息仍然有用。确保您查看的是全局http://nginx.org/r/error_log,而不是单个error_log的{​​{1}},在严重影响nginx作为问题的情况下,通常不会有什么有趣的事情整个。