1

Я работаю над настройкой балансировки нагрузки 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>

На каждой из рабочих машин у меня есть стандартная настройка виртуального хоста. пропуска прокси нет, просто стандартные конфиги, чтобы машина работала нормально, если домен на нее указывает.

Я впервые пытаюсь настроить все это, поэтому я приветствую любые отзывы, которые могут помочь мне заставить несколько доменов и сайтов работать в одном кластере.

У кого-нибудь есть идеи, как решить эту проблему?

0