我们有运行在VPS上的Ruby on Rails应用程序。这天晚上,nginx瘫痪了,并回复了#802; 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) 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天。
所以问题出在unicorn服务器上。然后我打开了独角兽错误日志,发现只有一些信息消息,这些消息与问题无关。生产日志也没用。
我尝试通过 service nginx restart
重新启动服务器,但它没有帮助。还有一些悬而未决的独角兽进程。
当我重新部署应用程序时问题得以解决。这很奇怪,因为我在服务器发生故障前10小时部署了相同版本的应用程序。
我正在寻找任何建议如何防止这样的魔法'将来的案件。感谢您提供的任何帮助!
答案 0 :(得分:2)
当nginx试图访问它时,看起来你的unicorn服务器没有运行。
这可能是由于VPS重启,独角兽进程中的一些例外,或由于可用内存不足导致的unicorn进程被终止而引起的。 (恕我直言VPS重启是最可能的原因) 通过
检查独角兽ps aux | grep unicorn
您还可以使用
检查服务器正常运行时间uptime
然后你可以: