Apache 反向代理未按预期工作

Apache 反向代理未按预期工作

好吧,我感觉这件事有点愚蠢。

我正在尝试设置一个简单的 Apache 反向代理设置,但遇到了麻烦。我以前曾使用过此设置,但现在我不知道出了什么问题。以下是设置:

Listen 4050

ServerName lb-test
DocumentRoot /www/app

ProxyRequests Off

Header add Set-Cookie "BALANCEID=hej.%{BALANCER_WORKER_ROUTE}e; path=/;" env=BALANCER_ROUTE_CHANGED

<Proxy balancer://cluster>
    BalancerMember http://appserver1:4050 route=appserver1
    BalancerMember http://appserver2:4050 route=appserver2
    Order deny,allow
    Allow from all
</Proxy>

ProxyPass /balancer-manager !
ProxyPass / balancer://cluster/ stickysession=BALANCEID
ProxyPassReverse / balancer://cluster/

<Location /balancer-manager>
    SetHandler balancer-manager

    Order deny,allow
    Deny from None
    Allow from all
</Location>

我可以在打开调试的日志中看到请求被路由到平衡器成员,但同时发生的情况是代理主机 URL 也被插入到标头中。

从 lb 主机:curl -I localhost

HTTP/1.1 200 OK
Date: Wed, 11 Apr 2012 17:33:18 GMT
Server: thin 1.3.1 codename Triple Espresso
Content-Type: text/html; charset=utf-8
Via: 1.1 appserver2:4050
Via: 1.1 lb-test
Set-Cookie: BALANCEID=hej.appserver2; path=/;

如您所见,两个主机都在标头中,这会破坏应用程序。我认为访问 localhost:80 不会触发 mod_proxy,对吗?如果我访问 localhost:4050,也会发生同样的事情。有人知道发生了什么吗?

谢谢

答案1

你应该设置;

ProxyPreserveHost On

在您的 vhost 配置中

相关内容