通过套接字保持上游与Unicorn的连接

时间:2012-07-04 02:47:54

标签: nginx unicorn

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连接本身是永久性的?

2 个答案:

答案 0 :(得分:3)

是的,这是有效的。就HTTP Keepalive而言,UNIX套接字和TCP / IP套接字没有区别。

答案 1 :(得分:3)

Unicorn不支持设计的持久(保持活动)连接。因此,您不应该尝试使用与unicorn后端的持久(保持活动)连接。