【问题标题】:Keepalived upstream connection to Unicorn via socket通过套接字到 Unicorn 的 Keepalived 上游连接
【发布时间】:2012-07-04 12:38:57
【问题描述】:

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_versionproxy_set_header

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

【问题讨论】:

    标签: nginx unicorn


    【解决方案1】:

    是的,它是有效的。在 HTTP Keepalive 方面,UNIX-socket 和 TCP/IP-socket 没有区别。

    【讨论】:

    • 非常感谢!获得您对配置的专业反馈也很棒gist.github.com/3052776
    • VBart: Unicorn docs says “由于 Unicorn 仅设计用于快速发送响应主体而无需保持活动状态的应用程序,因此套接字将始终在关闭时刷新以防止延迟。”是否意味着 nginx 上游连接有开销?
    • 看来。 unicorn.bogomips.org/DESIGN.html像 Mongrel 一样,既不支持 keepalive 也不支持流水线。 那么 unicorn 的“keepalive”选项就没有用了,并且引入了很小的处理开销。
    【解决方案2】:

    Unicorn 在设计上不支持持久(保持活动)连接。因此,您不应该尝试使用持久(保持活动)连接到独角兽后端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-12
      • 2016-01-09
      • 2020-09-29
      • 2011-06-25
      • 2015-03-05
      • 1970-01-01
      • 2018-12-01
      相关资源
      最近更新 更多