Назад | Перейти на главную страницу

Контекст обратного прокси-сервера Apache для Tomcat без контекста

У меня есть экземпляр Apache и два экземпляра Tomcat. Apache общедоступен https: // public_url / app1 и https: // public_url / app2 и должен передавать каждый контекст соответствующему экземпляру Tomcat.

Один из экземпляров Tomcat не имеет контекста, т.е. https: // ip_address: порт и я не могу правильно передать трафик на прокси с помощью AJP13 или HTTP / S.

<Location /app1>
ProxyPass ajp://127.0.0.1:8009/app1 nocanon
ProxyPassReverse ajp://127.0.0.1:8009/app1
</Location>

<Location /app2>
ProxyPass ajp://127.0.0.2:8009/ nocanon
ProxyPassReverse ajp://127.0.0.2:8009/
</Location>

В приведенном выше случае app1 работает, а app2 - нет, поскольку оно отбрасывает общедоступный контекст app2, т.е. прямой доступ к бэкэнду даст https: // url / логин / логин и поэтому я ожидаю, что он должен выглядеть как https: // public_url / app2 / login / login но вместо 404 на https: // public_url / логин / логин

Я попытался заменить указанное выше правило app2 на mod_jk на том основании, что оно поддерживает более сложные сценарии, но без особого успеха.

worker.list=app2_ajp
worker.app2_ajp.port=8009
worker.app2_ajp.host=127.0.0.2
worker.app2_ajp.type=ajp13

LoadModule jk_module modules/mod_jk.so
JKWorkersFile /etc/httpd/conf.d/workers.properties
JkLogFile /var/log/httpd/mod_jk_log
JkLogLevel debug
JkLogStampFormat  "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardURICompatUnparsed +ForwardKeySize +ForwardURICompat +ForwardDirectories

JKMountCopy All
JKMount /app2 app2_ajp
JKMount /app2/* app2_ajp

Можно ли проксировать экземпляр Tomcat через AJP13 без контекста? Где я ошибаюсь в настройке AJP13 или есть способ с прокси HTTPS?