我已经检查了应用程序,并且一切接缝都很好(代码应用程序配置明智),服务器,数据库也没问题,在日志中我遇到了这个错误,我已经看过这个Nginx cannot find unix socket file with Unicorn (no such file or directory)但我真的不知道从哪里开始才能实现“只需修改你的Unicorn配置文件中的listen变量。例如:听”/var/sockets/unicorn.[app name] .sock“,然后配置Nginx代理全部与服务器连接到该套接字文件,例如服务器unix:/ var / sockets / unicorn。[app name] .sock fail_timeout = 0;“如果有人可以请指点我如何做到这一点就会很棒。
我更改了文件,但卡在同样的错误中,mi配置文件是(我因为保密原因删除了部分文件):
root = ""
working_directory root
pid "#{root}/tmp/pids/unicorn.pid"
stderr_path "#{root}/log/unicorn.log"
stdout_path "#{root}/log/unicorn.log"
listen "/var/sockets/unicorn.camicase.sock"
worker_processes 2
timeout 30
和ngix config
upstream unicorn {
server unix:/var/sockets/unicorn.camicase.sock fail_timeout=0;
}
server {
listen 80;
server_name _;
rewrite ^ https://$host$request_uri? permanent;
}
server {
listen 443;
server_name
root
ssl on;
ssl_certificate
ssl_certificate_key
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
答案 0 :(得分:8)
所以最终让系统启动并运行,并且面对所有遇到类似问题的人,并且没有关于unicorn或ngixn的知识,这里是步骤:
首先确保两个服务都在运行(unicorn是app服务器,ngixn是http服务器),两个服务都应该在/etc/init.d /中配置。
停止这两项服务。
检查selinux中的策略,这是一个关于如何在PHP nginx error connect to php5-fpm.sock failed (13: Permission denied)中针对相同错误执行此操作的一个很好的问题,我们的想法是确保selinux不会干扰套接字的rad进程(套接字由unicorn创建并由ngixn reading
然后你必须编辑你的配置文件unicorn.rb和nginx.conf,两者都应该指向一个与tmp不同的文件夹,这就是为什么https://serverfault.com/questions/463993/nginx-unix-domain-socket-error/464025#464025
所以最后我的配置看起来像这样:
nginx配置文件的一部分
upstream unicorn {
server unix:/home/myuser/apps/myapp/shared/socket/unicorn.camicase.sock fail_timeout=0;
}
unicorn配置文件的一部分
listen "/home/deployer/apps/stickystreet/shared/socket/unicorn.camicase.sock"
然后启动unicorn一个ngixn,如果你在连接到上游错误时得到一个(13:权限被拒绝)只需要做一个sudo chmod 775套接字/更改你要放置你的unicorn套接字的文件夹的套接字,重启ngixn服务。