Nginx 1.1.4+可以使用HTTP1.1 keepalive 指令提供上游连接,请参阅official documentation(它与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 。
所以问题是配置有效还是socket连接本身是永久性的?
答案 0 :(得分:3)
是的,这是有效的。就HTTP Keepalive而言,UNIX套接字和TCP / IP套接字没有区别。
答案 1 :(得分:3)
Unicorn不支持设计的持久(保持活动)连接。因此,您不应该尝试使用与unicorn后端的持久(保持活动)连接。