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

Рецепт Apache / Glassfish для запуска нескольких приложений на одном хосте

Я пытаюсь настроить Apache + Glassfish, чтобы иметь доступ к двум разным веб-приложениям на одном физическом хосте, различающихся именем хоста в URL-адресе.

Итак, если я приду http://host1.com, Я получу app1. Если я приеду http://host2.com, Я получу app2. host1 и host2 оба разрешаются на один и тот же IP-адрес.

Я смог заставить это работать в основной способ с виртуальными серверами mod_proxy и Glassfish, используя это руководство. Но пользователю по-прежнему необходимо указать корневой контекст для одного из приложений, т.е. http://host1.com/app1.

Как я могу настроить так, чтобы оба приложения отображались как «корень» в их соответствующих URL-адресах?

Нужны ли мне два отдельных домена Glassfish?

Вот конфигурация apache, которую я использую:

<VirtualHost *:80>
     ProxyPreserveHost On
     ProxyPass / http://localhost:8080/app1
     ProxyPassReverse / http://localhost:8080/app1
     ServerName host1.com
</VirtualHost>

<VirtualHost *:80>
     ProxyPreserveHost On
     ProxyPass / http://localhost:8080/
     ProxyPassReverse / http://localhost:8080/app2
     ServerName host2.com
</VirtualHost>

Я был близок. Вот что в итоге сработало:

Создайте второй домен:

  • $ asadmin create-domain --portbase 5000 --profile developer mydomain
  • $ asadmin начальный домен mydomain

Разверните оба приложения в корневом контексте их соответствующих доменов. Вы указываете домен, задав порт администратора:

  • $ asadmin deploy --contextroot "/" target / app1.war # domain1
  • $ asadmin deploy --contextroot "/" --port 5048 target / app2.war # mydomain

Новый домен будет работать на порту 5080, поэтому настройте mod_proxy для его использования:

<VirtualHost *:80>
     ProxyPreserveHost On
     ProxyPass / http://localhost:8080/
     ProxyPassReverse / http://localhost:8080/
     ServerName host1.com
</VirtualHost>

<VirtualHost *:80>
     ProxyPreserveHost On
     ProxyPass / http://localhost:5080/
     ProxyPassReverse / http://localhost:5080/
     ServerName host2.com
</VirtualHost>