Хорошо, я чувствую себя немного глупо из-за этого.
Я пытаюсь настроить простую настройку обратного прокси-сервера 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, произойдет то же самое. Кто-нибудь знает, что происходит?
Спасибо
вы должны установить;
ProxyPreserveHost On
в вашей конфигурации vhost