【问题标题】:Strange issue with unicorn and nginx caused 502 errorunicorn 和 nginx 的奇怪问题导致 502 错误
【发布时间】:2013-10-02 08:40:30
【问题描述】:

我们有 Ruby on Rails 应用程序,它在 VPS 上运行。今晚,nginx 出现故障并以“502 Bad Gateway”响应。 Nginx 错误日志包含大量以下消息:

2013/10/02 00:01:47 [error] 1136#0: *1 connect() to unix:/app_directory/shared/sockets/unicorn.sock failed (111: Connection refused) whileconnecting 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 天前。

所以问题出在独角兽服务器上。然后我打开了独角兽错误日志,发现只有一些信息消息,这与问题无关。生产日志也没用。

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

当我重新部署应用程序时,问题已解决。这很奇怪,因为我在服务器宕机前 10 小时部署了相同版本的应用程序。

我正在寻找任何建议,以防止将来出现此类“神奇”案件。感谢您提供的任何帮助!

【问题讨论】:

  • 您的应用在没有 502 错误的情况下运行的时间最长是 10 小时吗?
  • 不,该应用程序在大约 3 个月内相当稳定。我的意思是我上次部署并没有破坏应用程序,因为应用程序运行了大约 10 个小时。

标签: ruby-on-rails ruby sockets nginx unicorn


【解决方案1】:

当 nginx 尝试访问您的独角兽服务器时,您的独角兽服务器似乎没有运行。

这可能是由于 VPS 重启、独角兽进程中的一些异常,或者由于可用内存不足而导致独角兽进程被杀死。 (恕我直言 VPS 重启是最可能的原因) 通过

检查独角兽
ps aux | grep unicorn

您还可以检查服务器的正常运行时间

uptime

那么你可以:

  • 添加将在 VPS 启动时启动 unicorn 的脚本
  • 将其添加为服务
  • 运行一些监控进程(如monit

【讨论】:

    猜你喜欢
    • 2015-05-21
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多