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

Ana*_*oly 5 nginx unicorn

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 "";
  }
}
Run Code Online (Sandbox Code Playgroud)

HTTP 连接需要这些标头:proxy_http_versionproxy_set_header

那么问题是配置有效还是套接字连接本身是永久的?

VBa*_*art 4

是的,这是有效的。UNIX 套接字和 TCP/IP 套接字在 HTTP Keepalive 方面没有区别。

  • 它似乎。http://unicorn.bogomips.org/DESIGN.html 说*像 Mongrel 一样,既不支持 keepalive 也不支持管道操作。*那么 unicorn 的“keepalive”选项就没用了,并且引入了少量的处理开销。 (2认同)