Ответ 1
Сокет - это "файл", который nginx и единорог используют в качестве канала для всей связи между ними. Где вы его определили? В наших конфигурациях unicorn мы обычно имеем такую строку:
listen APP_PATH + "/tmp/pid/.unicorn.sock
Затем в вашем nginx.conf вам нужно сообщить nginx об этом сокете, например:
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;
}
В этом файле конфигурации первый раздел определяет, как nginx может достичь единорога. Второй на самом деле направляет запросы в абстрактное местоположение "@unicorns", которое, в свою очередь, определяется в последнем разделе. Таким образом, вы можете повторно использовать сокращение @unicorns, если у вас более сложная маршрутизация nginx.