Der Socket ist die "Datei", die nginx und Einhorn als Kanal für die gesamte Kommunikation zwischen ihnen verwenden. Wo hast du es definiert? In unserem Einhorn configs, haben wir in der Regel eine Zeile wie diese:
listen APP_PATH + "/tmp/pid/.unicorn.sock
Dann in Ihrem nginx.conf, müssen Sie nginx über diese Buchse sagen, zum Beispiel:
upstream unicorn {
server unix:/var/www/demo/tmp/pid/.unicorn.sock fail_timeout=0;
}
location/{
root /var/www/demo/current/public ;
try_files $uri @unicorns;
}
location @unicorns {
proxy_pass http://unicorn;
}
In dieser Konfigurationsdatei Der erste Abschnitt definiert, wie nginx ein Einhorn erreichen kann. Der zweite leitet Anfragen tatsächlich an einen abstrakten Ort "@unicorns", der wiederum im letzten Abschnitt definiert ist. Auf diese Weise können Sie die @unicorns-Kurzschrift wiederverwenden, wenn Sie ein komplexeres nginx-Routing haben.
was sagt der stderr unter /var/www/demo/log/unicorn.stderr.log? Übrigens, Sie protokollieren stdout und stderr in derselben Datei. –
Keine solche Datei oder Verzeichnis - /path/to/.unicorn.sock (Errno :: ENOENT) –