Как разработать Виртуальный Хост в Apache 2.2.x для отображения Субдомена на Контекст Сервлета?

Я закончил тем, что сдался и понизил до 9,04.:(

0
задан 2 March 2011 в 17:13
2 ответа

Я закончил тем, что угробил Tomcat Apache и просто использовал Причал и подал заявки их собственное ROOT контекст приложения. Не оптимальный, но это - легкий вес достаточно, пока я не могу выяснить, как на самом деле разместить несколько приложений из контейнера Сервлета и иметь их, беспрепятственно направляют к и от субдоменов. Используя Tomcat Виртуальные хосты непосредственно вне Tomcat были предложены офлайн кем-то, я исследую это также.

0
ответ дан 5 December 2019 в 17:15

Это должно работать:

<VirtualHost 0.0.0.0:80>
    ServerName app1.mycompany.com

    ProxyPass / http://dev.mycompany.com:8080/app1/
    ProxyPassReverse / http://dev.mycompany.com:8080/app1/
</VirtualHost>

Отметьте однако, что, если сервлет по dev.mycompany.com использует запрос, URI, чтобы перенаправить браузер или генерировать ссылку в Apache документа не понимает (например, файл JNLP), то это не загрузит, потому что это произойдет:

  1. Сервлет обнаруживает URI,/app1/
  2. Сервлет генерирует ссылку, например,/app1/this_is_needed.jar
  3. Клиент пытается загрузить ссылку, http://app1.mycompany.com/app1/this_is_needed.jar
  4. Начиная со всех запросов перенаправляется к dev.mycompany.com:8080/app1/, запрос становится http://dev.mycompany.com:8080/app1/app1/this_is_needed.jar, который не существует.

Это не будет относиться к страницам HTML, потому что Apache изменит ссылки (это - то, что ProxyPassReverse для). Если необходимо работать вокруг ошибки, я описал, у Вас есть две опции:

  1. Сделайте веб-приложение, знающее о том, что ему, вероятно, придется служить путям, отличающимся от запроса URI. Необходимо будет найти способ указать эти пути на лету, с помощью переменных окружения (директива SetEnv), например,
  2. Проксируйте целый контекст, и в webroot, поместите простую страницу, которая перенаправляет пользователя к/app1/
0
ответ дан 5 December 2019 в 17:15

Теги

Похожие вопросы