Я пытаюсь настроить 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>
Я был близок. Вот что в итоге сработало:
Создайте второй домен:
Разверните оба приложения в корневом контексте их соответствующих доменов. Вы указываете домен, задав порт администратора:
Новый домен будет работать на порту 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>