Nginx 1.1.4+ может обслуживать восходящее соединение с директивой HTTP1.1 keepalive, см. официальная документация (это не то же самое, что и соединения Keepalived клиентов). Таким образом, конфигурация Unicorn может выглядеть следующим образом:
upstream unicorn {
server unix:/tmp/unicorn.todo.sock fail_timeout=0;
keepalive 4;
}
server {
try_files $uri/index.html $uri @unicorn;
keepalive_timeout 70;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
Эти заголовки необходимы для HTTP-соединения: proxy_http_version и proxy_set_header.
Итак, вопрос в том, действительна ли конфигурация или сокет-соединение само по себе является постоянным?