Я работаю над настройкой балансировки нагрузки apache с двумя участниками. Эти три сервера являются Windows Server 2012 с использованием Apache 2.4.9. Я работаю над тем, чтобы один кластер балансировки нагрузки обслуживал несколько сайтов. На данный момент две настройки localhost и test1, когда я иду на localhost, все хорошо, балансировщик нагрузки работает ... Когда я иду на test1, суб-серверы загружают конфигурацию localhost (которая используется по умолчанию), я думаю, что это что-то как URL-адрес test1 не передается работникам, поэтому работники не могут его идентифицировать.
Вот как выглядит конфигурация виртуального хоста для localhost на балансировщике нагрузки [обратите внимание, что он сделан универсальным для клиента] ....
<VirtualHost *:80>
ServerAdmin someone@somewhere.org
DocumentRoot "E:/generic-page/www"
ServerName localhost
ErrorLog "E:/_logs/localhost-error.log"
CustomLog "E:/_logs/localhost-access.log" common
ProxyRequests Off
<Proxy *>
AllowOverride All
Require all granted
</Proxy>
ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster/ stickysession=PHPSESSIONID nofailover=On
<Location /balancer-manager>
SetHandler balancer-manager
Require all granted
</Location>
#ProxyPassReverse / http://tstweb1.somewhere.org:80
#ProxyPassReverse / http://tstweb2.somewhere.org:80
<Proxy balancer://mycluster>
BalancerMember http://tstweb1.somewhere.org:80 loadfactor=1
BalancerMember http://tstweb2.somewhere.org:80 loadfactor=2
ProxySet lbmethod=byrequests
</Proxy>
<Location />
ProxyPass balancer://mycluster/ stickysession=PHPSESSIONID
</Location>
</VirtualHost>
Вот как выглядит test1 на балансировщике нагрузки ...
<VirtualHost *:80>
ServerAdmin someone@somewhere.org
DocumentRoot "E:/test1/trunk"
ServerName test1
ErrorLog "E:/test1/_logs/test1-error.log"
CustomLog "E:/test1/_logs/test1-access.log" common
ProxyRequests Off
<Proxy *>
AllowOverride All
Require all granted
</Proxy>
ProxyPass /balancer-manager !
ProxyPass / balancer://test1cluster/ stickysession=PHPSESSIONID nofailover=On
<Location /balancer-manager>
SetHandler balancer-manager
Require all granted
</Location>
<Location />
ProxyPass balancer://test1cluster/ stickysession=PHPSESSIONID
</Location>
#ProxyPassReverse / http://tstweb1.somewhere.org:80
#ProxyPassReverse / http://tstweb2.somewhere.org:80
<Proxy balancer://test1cluster>
BalancerMember http://tstweb1.somewhere.org:80 loadfactor=1
BalancerMember http://tstweb2.somewhere.org:80 loadfactor=2
ProxySet lbmethod=byrequests
</Proxy>
</VirtualHost>
На каждой из рабочих машин у меня есть стандартная настройка виртуального хоста. пропуска прокси нет, просто стандартные конфиги, что машина будет работать нормально, если домен указывает на него.
Я впервые пытаюсь настроить все это, поэтому я приветствую любые отзывы, которые могут помочь мне получить несколько доменов и сайтов для работы в одном кластере.
У кого-нибудь есть идеи, как решить эту проблему?
источник
<Proxy balancer://test1cluster>
быть одинаковым на обоих серверах? Я еще не слишком много смотрел на это, но мне кажется, что имя должно быть одинаковым для всех участников