Rails + Puma + Nginx每隔几天Bad Gateway 502

时间:2015-07-23 19:09:43

标签: ruby-on-rails nginx puma

我有一个使用Puma在Nginx上运行的rails应用程序,就像发条一样,应用程序每隔几天就会出现502 Bad Gateway错误。

我的nginx日志包含很多这样的错误:

2015/07/23 14:43:49 [error] 14044#0: *7036 connect() to unix:///var/www/myapp/myapp_app.sock failed (111: Connection refused) while connecting to upstream, client: 12.123.12.12, server: myapp.com, request: "GET /arrangements HTTP/1.1", upstream: "http://unix:///var/www/myapp/myapp_app.sock:/arrangements", host: "myapp.com", referrer: "http://myapp.com/arrangements"

我必须重新启动Puma,一切都会再次运作......几天。

我有什么想法可以排除故障吗?我是nginx和puma的新手。

/etc/nginx/sites-enabled/myapp.com

upstream myapp {
                server unix:///var/www/myapp/myapp_app.sock;
        }
        server {
                listen 80;
                server_name myapp.com;
                root /var/www/myapp/current/public;
                client_max_body_size 20M;

                location ~ \.php$ {
                        try_files $uri =404;
                        fastcgi_pass unix:/var/run/php5-fpm.sock;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        include fastcgi_params;
                        allow all;
                        satisfy any;
                }

                location / {
                        proxy_pass http://myapp; # match the name of upstream directive which is defined above
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
                location ~* ^/assets/ {
                        # Per RFC2616 - 1 year maximum expiry
                        expires 1y;
                        add_header Cache-Control public;

                        # Some browsers still send conditional-GET requests if there's a
                        # Last-Modified header or an ETag header even if they haven't
                        # reached the expiry date sent in the Expires header.
                        add_header Last-Modified "";
                        add_header ETag "";
                        break;
                }
        }

2 个答案:

答案 0 :(得分:4)

DigitalOcean网络团队发现了NYC3内许多网络交换机上运行固件的问题。 此问题导致间接丢失与客户飞沫的连接。

虽然仅在机架子集中确认了该问题,但我们将升级在NYC3中运行受影响固件的所有交换机。随着各个交换机的升级,这种维护将导致维护窗口内某个点的每个机架停机时间大约为10分钟。

维护窗口: 2015-08-27 22:00 EDT - 2015-08-28 02:00 EDT 2015-08-28 02:00 UTC - 2015-08-28 06:00 UTC

对于给您带来的不便表示歉意,感谢您在我们努力提高网络可靠性时的耐心等待。

我会给它一两天,看看你遇到的问题是否已经复发,或者只是自己消失了。

<强>添加/编辑的

P.S。我刚刚注意到电子邮件中的详细信息,

  

受影响的水滴:   railsbox00

如果您收到电子邮件,那么您的Droplet会受到固件问题的影响。检查您的电子邮件,看看他们是否列出了您的VPS;它位于电子邮件的底部。

答案 1 :(得分:2)

我不知道这个问题是否仍然相关,但是对于这个确切的问题有什么帮助我将puma.sock文件的实际位置移动到另一个目录。我选择了/tmp目录。

套接字曾经在NFS安装到另一台服务器的驱动器上,我相信 是问题 - 在这里和那里的网络中有些小问题。我不确定它究竟是什么,但自从我将puma.sock移到/tmp后,所有问题都消失了。对我来说。