我尝试了在 Google 上针对这个问题找到的所有方法,但没有任何效果。反正也没用。
我的 NGINX 默认设置:
upstream app {
server unix:/tmp/unicorn.rails.sock fail_timeout=0;
}
server {
listen 80;
root /home/rails/public;
server_name _;
index index.htm index.html;
location / {
try_files $uri/index.html $uri.html $uri @app;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|mp3|flv|mpeg|avi)$ {
try_files $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;
}
}
NGINX 错误日志:
*12 connect() to unix:/tmp/unicorn.myapp.sock failed (2: No such file or directory) while connecting to upstream, client: 46.228.180.65, server: _, request: "GET / HTTP/1.1", upstream: "http://unix:/tmp/unicorn.myapp.sock:/", host: "178.62.102.154"
你能帮忙修复它吗?
/home/rails/config/unicorn.rb
working_directory "/home/rails"
pid "/home/rails/pids/unicorn.pid"
stderr_path "/home/rails/log/unicorn.log"
stdout_path "/home/rails/log/unicorn.log"
listen "/tmp/unicorn.rails.sock"
worker_processes 2
timeout 30
答案1
发现 nginx 之间的差异:
上游应用程序 {服务器 unix:/tmp/unicorn。我的应用程序.sock 失败超时=0; }
你的独角兽配置如下:
听“/tmp/unicorn。轨道。短袜”
您可能应该将两者都指向同一个插座......