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

Прокси-сервер Tomcat 7 + apache2 вызывает отсутствие ресурса веб-сайта

У меня есть эта проблема, я уверен, что большинство людей должны были это увидеть. Я использую apache2 mod_proxy_html для пересылки веб-запроса на tomcat. Запрос был отправлен на tomcat, но сервер tomcat не может найти ресурсы веб-сайта (изображения, стиль, шрифт и т. Д.). Проблема в том, что при использовании ввода subdomain.example.com Tomcat считает, что путь к ресурсам должен находиться по адресу: http://subdomain.example.com/xyz/images/images1.jpg.

Это вызвало проблему, потому что на самом деле HTTP-запрос стал: http://www.example.com:8080/xyz/xyz/images/images1.jpg, имя контекста "xyz" появляется дважды. Следовательно, tomcat не может найти файл изображения. На самом деле файл находится по адресу www.example.com:8080/xyz/images/images1.jpg.

Я считаю, что это стандартная установка, но я не мог понять, как большинство людей решают эту проблему с путями?

Это моя установка: 1. В моем конфигурационном файле apache2 virtualHost у меня есть такая установка:

<VirtualHost *:80>
ServerName subdomain.example.com

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  ProxyRequests Off
  ProxyPreserveHost On
  <Proxy *>
       Order deny,allow
       Allow from all
  </Proxy>
  ProxyPass / http://www.example.com:8080/xyz/
  ProxyPassReverse / http://www.example.com:8080/xyz/
</VirtualHost>
  1. В Tomcat мой веб-сайт установлен в * / tomcat7 / webapps / xyz

  2. Я использовал $ {pageContext.request.contextPath}, чтобы определить базовый путь для всех моих ресурсов на моей странице jsp.

Добавить

ProxyPass /xyz/ http://www.example.com:8080/xyz/

над первой строкой ProxyPass, и все будет в порядке.