2016-12-05 7 views
0

В настоящее время у меня есть следующий ProxyPass, настроенный в моем файле Apache httpd.conf.Apache 2.4 - настроить ProxyPass на основе полного URL-адреса вместо конечного пути

Цель состоит в том, чтобы иметь один PROXYPASS на http://myurl.com: port1/mypath на один баланс группы, а затем любой дополнительный PROXYPASS перейти к http://myurl.com: port2/mypath любых дополнительных групп баланса.

Вот мой код в настоящее время как есть, который работает только на основе/mypath, видимо, и не может иметь никакого исходящего URL. Проблема в том, что мои два/mypath одинаковы и только отличаются по port1 и port2 в URL.

В настоящее время я слушаю Port1 и Port2, определенные выше в Apache, но в настоящее время я не могу отличить, будет ли кто-то, кто приходит на myurl.com:port1, будет перенаправлен на Group1 или Group2 в менеджере баланса, поскольку/mypath одинаково для обоих.

<IfModule proxy_module> 
    ProxyPass /mypath balancer://Group1/ stickysession=JSESSIONID|jsessionid 
    ProxyPass /mypath balancer://Group2/ stickysession=JSESSIONID|jsessionid 
    <Proxy balancer://Group1> 
      BalancerMember ajp://myurl.com:portX/mypath route=TC01 
    </Proxy> 
    <Proxy balancer://Group2> 
      BalancerMember ajp://myurl.com:portY/mypath route=TC01 
    </Proxy> 
</IfModule> 

Ниже не работает, но это, по сути, что я пытаюсь сделать:

<IfModule proxy_module> 
    ProxyPass http://myurl.com:port1/mypath balancer://Group1/ stickysession=JSESSIONID|jsessionid 
    ProxyPass http://myurl.com:port2/mypath balancer://Group2/ stickysession=JSESSIONID|jsessionid 
    <Proxy balancer://Group1> 
      BalancerMember ajp://myurl.com:portX/mypath route=TC01 
    </Proxy> 
    <Proxy balancer://Group2> 
      BalancerMember ajp://myurl.com:portY/mypath route=TC01 
    </Proxy> 
</IfModule> 

ответ

0

Поскольку ProxyPass не может происходить в пределах <If> секции, кажется, что вы остались с расщеплением конфигурации в двух VirtualHost s:

<VirtualHost *:port1> 
    ServerName myurl.com 
    <Proxy balancer://Group1> 
     BalancerMember ajp://myurl.com:portX/mypath route=TC01 
    </Proxy> 
    ProxyPass /mypath balancer://Group1/ stickysession=JSESSIONID|jsessionid 
</VirtualHost> 

<VirtualHost *:port2> 
    ServerName myurl.com 
    <Proxy balancer://Group2> 
     BalancerMember ajp://myurl.com:portY/mypath route=TC01 
    </Proxy> 
    ProxyPass /mypath balancer://Group2/ stickysession=JSESSIONID|jsessionid 
</VirtualHost> 
+0

Я искал VirtualHost и надеялся на другой путь, но, похоже, это действительно лучший способ! Это решение сработало для меня, спасибо за помощь! – notagoodcoder