我最近问了一个关于如何使用 Nginx 保持后端连接的持久性的问题,但发现这根本行不通,
它是一个 HTTP/1.0 代理,尚不具备保持活动请求的能力。(因此,每次请求时都会创建和销毁后端连接。)
现在一切运行正常(因为客户端和 Nginx 之间的连接保持活动状态并且结果完全相同),但我不想每次收到新请求时都建立一个新连接,即使它是在 unix 域套接字上。
那么,您推荐使用什么软件(最好是开源的并且配置不太繁琐)来实现这样的连接?
答案1
我认为他们正在努力将其放入 haproxy 中。
请记住,LAN 上的 tcp 设置(=低延迟)通常不是问题,所有现代操作系统都已很好地解决了这个问题。当然,如果只开放后端连接会更好,但这会使前端(在本例中为 nginx 或 haproxy)的代码以令人惊讶的方式变得更加复杂。
答案2
Apache 流量服务器是一个 HTTP 1.1 代理,我记得它既是前端也是后端。它还是一个缓存和静态 Web 服务器。
答案3
我会投票支持 varnish,特别是当您不需要 SSL 或者愿意在 443 上直接运行其他东西来提供 HTTPS 服务时。http://www.varnish-cache.org/
答案4
这取决于您的 nginx 后面运行的是哪种应用程序。我曾在其后面运行过 unicorn 并使用 UNIX 套接字。效果非常好。现在我正在使用 Trinidad 运行一个通过 HTTP 传输的 Jruby 应用程序,效果不错。如果您在 Tomcat 中运行后端应用程序,那么您应该能够使用 nginx 的 mod_ajp。据我所知,它保持了 AJP 持久连接。