我正在尝试部署我的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"时,我注意到以下内容:彪马目录
我在部署服务器上完成了完全相同的设置(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;
}
我想你错过了Procfile
创建一个Procfile并在中添加以下代码
web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}
您在上游nginx conf中指定了app_name-puma.sock
,实际的套接字文件名为puma.sock
尝试更改:
upstream puma {
server unix:///home/deploy/apps/app_name/shared/tmp/sockets/app_name-puma.sock;
}
至:
upstream puma {
server unix:///home/deploy/apps/app_name/shared/tmp/sockets/puma.sock;
}