Rails,Nginx,Puma访问权限错误(Puma.sock在执行ls-l时以粉红色突出显示)



我正在尝试部署我的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;
}

最新更新