奇怪的问题与独angular兽和nginx导致502错误

我们已经在VPS上运行了Ruby on Rails应用程序。 这晚,nginx响起了“502 Bad Gateway”。 Nginx错误日志包含许多以下消息:

connecting to upstream, client: 5.10.83.46, server: www.website.com, request: "GET /resource/206 HTTP/1.1", upstream: "http://unix:/app_directory/shared/sockets/unicorn.sock:/resource/206", host: "www.website.com" 2013/10/02 00:01:47 [error] 1136#0: *1 connect() to unix:/app_directory/shared/sockets/unicorn.sock failed (111: Connection refused) while connecting to upstream, client: 5.10.83.46, server: www.website.com, request: "GET /resource/206 HTTP/1.1", upstream: "http://unix:/app_directory/shared/sockets/unicorn.sock:/resource/206", host: "www.website.com"

这些错误突然开始,因为以前的错误消息是5天前。

所以问题在于独angular兽服务器。 然后,我打开独angular兽错误日志,发现只有一些信息消息,这并没有连接一个问题。 生产日志也是无用的。

我试图通过service nginx restart启动服务器,但它没有帮助。 也没有一些未决的独angular兽进程。

当我重新部署应用程序时,问题就解决了。 而奇怪的是,因为我在服务器closures前10个小时部署了相同版本的应用程序。

我正在寻找任何build议如何防止这种'魔术'的情况下在未来。 感谢您可以提供的任何帮助!

看起来你的独角兽服务器没有运行,当nginx试图访问它。

这可能是由于VPS重新启动,独角兽进程中的某些异常,或由于可用内存不足而导致的独角兽进程死亡。 (恕我直言,VPS重启是最可能的原因)检查独角兽

 ps aux | grep unicorn 

你也可以检查服务器的正常运行时间

 uptime 

然后你可以:

  • 添加将在VPS启动时启动独角兽的脚本
  • 将其添加为服务
  • 运行一些监视过程(如监视)