2015-03-18 130 views
3

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

但在尝试访问时,我的网页Ive得到了502错误网关

Nginx的错误日志中有一行:

2015年3月18日19时53分26秒[错误] 14319#0:* 1 connect()以 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 
+0

尝试在套接字行下添加另一个'listen 3000',并直接连接到'http:// localhost:3000'来查看Unicorn/Rails是否工作正常 – number5 2015-03-19 05:13:31

回答

1

我解决了这个问题。

这是因为我的独角兽服务器在开发环境中启动,而不是在生产环境中。 Unicorn试图连接到开发数据库,​​但缺少database.yml中dev db的证书。 在我制作env的独角兽之后,所有的东西都连接好了。

2

它看起来像座问题,但它通常是(111:连接被拒绝)当套接字关闭,所以我认为这是应用程序问题(高负载,执行缓慢等)。

尝试减少积压,并再次看到日志的详细信息:

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

:backlog => number of clients

相关问题