Apache - Tomcat ProxyPass VirtualHost - Путь к контексту - PullRequest
4 голосов
/ 09 апреля 2010

У меня проблема с настройкой директивы apache tomcat ProxyPass для двух приложений, имеющих два разных контекстных пути в tomcat. Tomcat работает за Apache, и я использую Apache для прокси-пути для запросов к Tomcat. В apache я хочу получить доступ к обоим приложениям через имя хоста вместо пути к контексту.

Сценарий:

* 1005 кот *

https://domain:8443/app1
https://domain:8443/app2

в tomcat приложения имеют контекстный путь app1 и app2

в apache Я хочу включить оба приложения следующим образом:

https://app1.host/
https://app2.host/

В apache я создал конфигурацию для каждого домена:

ProxyPass /  https://localhost:8443/app1
ProxyPassReverse / https://localhost:/8443/app1

Странно то, что app1 доступен только через apache, используя контекстный путь:

https://app1.host/app1

Можно ли реализовать такую ​​настройку с помощью модуля Apache ProxyPass?

Спасибо за помощь.

Ответы [ 2 ]

11 голосов
/ 21 апреля 2010

Вы должны быть в состоянии достичь желаемого результата с помощью виртуального хостинга. Также рекомендуется передавать запросы в tomcat по протоколу AJP вместо HTTPS. Попробуйте добавить это в конфигурацию Apache

NameVirtualHost *:443

<VirtualHost *:443>
    ServerName app1.host
    ProxyPass / ajp://localhost:8009/app1/
</VirtualHost>

<VirtualHost *:443>
    ServerName app2.host
    ProxyPass / ajp://localhost:8009/app2/
</VirtualHost>

Если вы не изменили настройки сервера по умолчанию для Tomcat, все должно работать так, как есть. В противном случае убедитесь, что указан порт AJP, настроенный в файле conf / server.xml Tomcat. Должна быть строка, похожая на эту:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Убедитесь, что у вас есть модули mod_proxy и mod_proxy_ajp, загруженные в конфигурации Apache, это может варьироваться в зависимости от вашей установки Apache. Также удалите все ранее настроенные строки «ProxyPass / ...», так как они будут мешать новой конфигурации. Надеюсь, это работает для вас.

7 голосов
/ 05 декабря 2012

вы можете попробовать

ProxyPass /  https://localhost:8443/app1/
ProxyPassReverse / https://localhost:8443/app1/

с финалом /

...