Вероятно, это простая проблема, но я просто не могу ее решить! У меня есть веб-сайт с двумя Apache Tomcats на разных портах (например, 8080, 8085). Однако, поскольку мои клиенты не могут получить доступ к определенным портам (их брандмауэры предотвращают это), они могут получить доступ к моей машине только через порт 80.
Итак, у меня заработали следующие редиректы:
aServer.com/App1 redirects to aServer.com:8080/App1
aServer.com/App2 redirects to aServer.com:8085/App2
используя следующий файл httpd.conf:
<VirtualHost *:80>
ProxyPass /App1 http://<server ip address>:8080/App1
ProxyPassReverse /App1 http://<server ip address>:8080/App1
ProxyPass /App2 http://<server ip address>:8085/App2
ProxyPassReverse /App2 http://<server ip address>:8085/App2
</VirtualHost>
Однако, если я хочу развернуть приложение как веб-приложение ROOT в Tomcat, я не могу заставить перенаправление работать должным образом. Я изменил httpd.conf на:
ProxyPass /App2 http://<server ip address>:8085
ProxyPassReverse /App2 http://<server ip address>:8085
и теперь возвращается только страница index.html, и каждая зависимость от веб-страницы (например, tomcat.css, tomcat.png) приводит к ошибке not found ( NetworkError: 404 Not Found - http://myServer/tomcat.css
)
Может кто-нибудь объяснить, что я делаю не так?
Спасибо,
Фил
Если ваше приложение явно не поддерживает прокси, вам обычно требуется сопоставить путь прокси с путем контекста.
http://myserver/tomcat.css
это запрос, который будет пытаться выполнить в корне вашего документа Apache, поскольку /
не передается Tomcat через прокси. Вам нужно будет выполнить одно из следующих действий (варианты от безопасного до ленивого):
прокси-сервер Apache в корневой каталог Tomcat,
Если вы не собираетесь запускать оба приложения в одном контейнере, убедитесь, что вы разместили директивы ProxyPass в правильном порядке.
изменить оригинал index.html
страницу в Tomcat, чтобы учесть изменение пути, вызванное прокси,
Вам придется повторять это каждый раз при повторном развертывании.
обеспечить перезапись для ВСЕХ ресурсов проксируемого пути
Вам придется повторять это каждый раз, когда повторное развертывание изменяет требуемые ресурсы.