我们有一个相当典型的设置:client < – > apache2(2.2.22)< – >后端(*)。
最初我们用最简单的forms使用mod_rewrite和[P]标志:
<VirtualHost *:80> RewriteEngine On ProxyPreserveHost On RewriteRule ^(.*)$ http://localhost:8081$1 [P,L] </VirtualHost>
然而,使用这种设置,即使客户端使用保持连接并使用一个tcp连接发送多个http请求到apache,apache创build一个到后端的新的tcp连接来达到请求。
我决定直接尝试使用mod_proxy:
ProxyPreserveHost On ProxyPass / http://localhost:8081/
而令我惊讶的是,Apache和后端之间的tcp连接被重新使用(这是我最初的目标)。
这是为什么? 有没有在mod_rewriteconfiguration启用Keepalive后端连接?
(*)后端实际上是haproxy < – >多个应用程序服务器,但我认为这不重要。
mod_proxy
做连接池。 mod_rewrite
不。