Nginx kann mit Unicorn keine Unix-Socket-Datei finden (keine solche Datei oder kein solches Verzeichnis)

Ich verwende Nginx und Unicorn, um eine Rails 4-App auf einem Fedora 19 x 64-Server bereitzustellen. Das Problem ist, dass ich einen Fehler erhalte, wenn ich die Adresse besuche: "Es tut uns leid, aber etwas ist schief gelaufen."

Mein Nginx-Fehlerprotokoll (/var/log/nginx/error.log) zeigt an:

2014/03/08 03:50:12 [warn] 23934#0: conflicting server name "localhost" on 0.0.0.0:80, ignored
2014/03/08 03:50:12 [warn] 23936#0: conflicting server name "localhost" on 0.0.0.0:80, ignored
2014/03/08 03:50:14 [crit] 23939#0: *1 connect() to unix:/tmp/unicorn.[app name].sock failed (2: No such file or directory) while connecting to upstream, client: [client IP], server: localhost, request: "GET /v1/industries/1.xml HTTP/1.1", upstream: "http://unix:/tmp/unicorn.[app name].sock:/v1/industries.json", host: "api.[app name].ca"

Soweit ich das beurteilen kann, ist Nginx nicht bekannt, dass der Socket existiert. Doch hineinschauen/tmp, es tut:

[root@localhost tmp]# ls
unicorn.[app name].sock

Ich bleibe an diesem Punkt hängen, egal wie ich meine Unicorn-Konfigurationsdatei oder meine Nginx-Konfigurationsdatei ändere. Beide werden angegriffen:

/ var / www / [App-Name] /config/unicorn.rb:

working_directory "/var/www/[app name]"
pid "/var/www/[app name]/pids/unicorn.pid"
stderr_path "/var/www/[app name]/log/unicorn.log"
stdout_path "/var/www/[app name]/log/unicorn.log"
listen "/tmp/unicorn.[app name].sock"
worker_processes 2
timeout 30

/etc/nginx/conf.d/default.conf:

upstream app {
    server unix:/tmp/unicorn.[app name].sock fail_timeout=0;
}
server {
    listen 80;
    server_name localhost;
    root /var/www/[app name]/public;
    try_files $uri/index.html $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;
    }
    error_page 500 502 503 504 /500.html;
    client_max_body_size 4G;
    keepalive_timeout 10;
}

Ich habe diese beiden Dämonen folgendermaßen gestartet:

unicorn_rails -c /var/www/[app name]/config/unicorn.rb -D -E production
service nginx start

Die Unicorn-Protokolle enthalten weder relevante Informationen noch die Produktionsprotokolle. Dieses Setup scheint unkompliziert zu sein. Hat das schon jemand erlebt? Vielen Dank für jede Hilfe, die Sie zur Verfügung stellen können.

Übrigens habe ich dieses Tutorial ursprünglich verfolgt:https://www.digitalocean.com/community/articles/how-to-deploy-rails-apps-using-unicorn-and-nginx-on-centos-6-5

Antworten auf die Frage(2)

Ihre Antwort auf die Frage