我试图设置Nginx,Unicorn和Rails应用程序一起工作。 Nginx和Nnicorn正在运行,我使用ps命令检查了它。
但是当我试图访问我的页面时,我得到了502 Bad Gateway
Nginx错误日志有一行:
2015/03/18 19:53:26 [错误] 14319#0:* 1 connect()to unix:/var/sockets/unicorn.mypage.sock失败(11:资源暂时 连接到上游时
可能是什么问题?
my /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 :(得分:2)
它看起来像套接字问题,但是当套接字关闭时它通常是(111:连接被拒绝),所以我认为这是app问题(高负载,慢执行等)。
尝试减少积压并再次查看日志以获取详细信息:
listen "/var/sockets/unicorn.mypage.sock", backlog: 64
答案 1 :(得分:1)
我解决了这个问题。
这是因为我的独角兽服务器在开发环境中启动,而不是在生产中。 Unicorn试图连接到开发数据库,但缺少database.yml中dev db的凭据。 在我开始生产独角兽后,一切都很好。