Я написал веб-приложение на Java / J2EE и развертываю его с помощью apache (микро-экземпляр ec2) для пересылки запросов от порт 80 к порт 8080 (такая же машина). Мой httpd.conf выглядит так:
<VirtualHost *:80>
ServerName localhost
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://localhost:8080/WEBAPP/
ProxyPassReverse / http://localhost:8080/WEBAPP/
</VirtualHost>
Проблема в том, что когда я добавляю <%=request.getContextPath()%>
перед моими ресурсами (URL-адреса, путь к изображениям, файлы js и т. д.) он добавляет то же самое, когда я получаю доступ к своему приложению с порта 80 или 8080. Теперь, когда я получаю доступ к моему приложению с порта 80, все мои ссылки перепутаны и ни один мои JS, css или URL-адреса работают.
Кроме того, я мог совершенно неправильно подойти к настройке своего веб-приложения, поэтому любой совет по его настройке будет оценен.
Спросил об этом при переполнении стека, но был указан здесь ...
РЕДАКТИРОВАТЬ
Как упоминалось в комментарии ниже, я настраиваю доменное имя и хотел бы mydomain.com загружать mydomain.com:8080/WEBAPP когда я захожу на mydomain.com. Я не уверен, что перенаправление - правильный ответ, потому что я не хочу просто отправлять пользователя на mydomain.com/WEBAPP (что легко исправить) Я хочу, чтобы URL-адрес выглядел красиво и работал интуитивно, а не просто перенаправлял пользователя повсюду. Также я пытаюсь избегать использования относительных путей при доступе к моим ресурсам (imgs, css, js и т. Д.), Чтобы я мог перенаправлять / перенаправлять пользователей из сервлета или напрямую обращаться к jsp, а пути должны быть правильными независимо от того, что фактически отображается в URL-адресе.
Надеюсь, это лучшее объяснение. Еще раз извините, если я не понял выше.
Вам следует исправить свою конфигурацию:
<VirtualHost *:80>
ServerName localhost
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass /WEBAPP http://localhost:8080/WEBAPP/
ProxyPassReverse /WEBAPP http://localhost:8080/WEBAPP/
</VirtualHost>
Дополнительная опция
<VirtualHost *:80>
ServerName localhost
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
Уточнение: с точки зрения безопасности лучше добавить перенаправление для каждого приложения (первый вариант). В этом случае все неподходящие запросы будут остановлены на Apache и не достигнут Tomcat.