Nginx、Unicorn和Rails = 502 Bad Gateway

4
我正在尝试设置Nginx,Unicorn和Rails应用程序一起工作。 Nginx和Unicorn正在运行,我使用ps命令进行了检查。但是,当我尝试访问我的页面时,会收到502 Bad Gateway错误。Nginx错误日志中有以下内容:“2015/03/18 19:53:26 [error] 14319#0: *1 connect() to unix:/var/sockets/unicorn.mypage.sock failed (11: Resource temporarily unavailable) while connecting to upstream”。可能的问题是什么?以下是我的/etc/nginx/conf.d/default.conf文件。
upstream app {
    server unix:/var/sockets/unicorn.mypage.sock fail_timeout=0;
}

server {

    listen 80;
    server_name mypage.com;

    # Application root, as defined previously
    root /home/rails/mypage/public;

    location ^~ /assets/ {
      gzip_static on;
      expires max;
      add_header Cache-Control public;
    }

    try_files $uri/index.html $uri @app;

    location @app {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app;
    }

    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 10;
}

/home/rails/mypage/config/unicorn.rb

working_directory "/home/rails/mypage"

pid "/home/rails/mypage/pids/unicorn.pid"

stderr_path "/home/rails/mypage/log/unicorn.log"
stdout_path "/home/rails/mypage/log/unicorn.log"

listen "/var/sockets/unicorn.mypage.sock", backlog: 1024

worker_processes 2

timeout 30

尝试在套接字行下添加另一个 listen 3000,并直接连接到 http://localhost:3000,以查看Unicorn/Rails是否正常工作。 - number5
2个回答

2

看起来像是套接字问题,但通常情况下(111:连接被拒绝)是套接字关闭时出现的,因此我认为这是应用程序问题(高负载、执行缓慢等)。

尝试减少积压并查看详细日志:

listen "/var/sockets/unicorn.mypage.sock", backlog: 64

:backlog => 客户端数量


1

我解决了这个问题。

问题出在我的独角兽服务器在开发环境下启动,而不是生产环境下启动。独角兽试图连接到开发数据库,但是database.yml中开发数据库的凭据缺失。当我在生产环境下启动独角兽时,一切都连接正常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接