首页 文章

Nginx,Unicorn和Rails = 502 Bad Gateway

提问于
浏览
3

我试图设置Nginx,Unicorn和Rails应用程序一起工作 . Nginx和Nnicorn正在运行,我使用ps命令检查了它 .

但是当我试图访问我的页面时,我得到了502 Bad Gateway

Nginx错误日志有一行:

2015/03/18 19:53:26 [错误] 14319#0:* 1连接()到unix:/var/sockets/unicorn.mypage.sock连接上游时失败(11:资源暂时不可用)

可能是什么问题?

我的/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

2 回答

  • 2

    它看起来像套接字问题,但是当套接字关闭时它通常是(111:连接被拒绝),所以我认为这是app问题(高负载,慢执行等) .

    尝试减少积压并再次查看日志以获取详细信息:

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

    :backlog => number of clients

  • 1

    我解决了这个问题 .

    这是因为我的独角兽服务器在开发环境中启动,而不是在 生产环境 中 . Unicorn试图连接到开发数据库,但缺少database.yml中dev db的凭据 . 在我开始 生产环境 独角兽后,一切都很好 .

相关问题