我正在尝试部署我的rails应用程序(Nginx + Puma),但似乎有一些与之相关的用户权限问题。
来自“nginx.error.log”的错误消息如下:
2015/11/12 09:07:23 [error] 1148#0: *10 connect() to
unix:///home/deploy/apps/app_name/shared/tmp/sockets/xxx-puma.sock failed
(111: Connection refused) while connecting to upstream, client: 61.6.11.121,
server: 168.63.241.117, request: "GET / HTTP/1.1",
upstream: "http://unix:///home/deploy/apps/app_name/shared/tmp/sockets/xxx-puma.sock:/",
host: "xxx"
当我进入包含 puma.sock 文件的目录并执行“ls -l”时,我注意到以下内容: Puma Directory
我在部署服务器上完成了完全相同的设置(capistrano)并将其复制到我的登台服务器上。两者之间的唯一区别是我的登台服务器上的puma.sock以粉红色突出显示(我怀疑它与用户访问权限有关)
任何人都可以帮我解决这个问题吗?提前谢谢。
更新(nginx.conf):
upstream puma {
server unix:///home/deploy/apps/app_name/shared/tmp/sockets/puma.sock;
}
server {
listen 80;
server_name xxx;
root /home/deploy/apps/app_name/current/public;
access_log /home/deploy/apps/app_name/current/log/nginx.access.log;
error_log /home/deploy/apps/app_name/current/log/nginx.error.log info;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @puma;
location @puma {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://puma;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 10M;
keepalive_timeout 10;
}
答案 0 :(得分:-1)
我想你错过了Procfile
创建一个Procfile并在
中添加以下代码web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}
答案 1 :(得分:-1)
You've specified app_name-puma.sock
in upstream nginx conf and your actual socket file is named puma.sock
try changing:
upstream puma {
server unix:///home/deploy/apps/app_name/shared/tmp/sockets/app_name-puma.sock;
}
to:
upstream puma {
server unix:///home/deploy/apps/app_name/shared/tmp/sockets/puma.sock;
}