Как направить поддомены в нужное приложение JBoss?
-
19-09-2019 - |
Вопрос
новичок в JBoss и настраиваю некоторые приложения.Я знаю, как это сделать на веб-сервере Apache, но не с помощью Jboss.
Я успешно развернул 3 приложения на Redhat Box, JBoss 4.2.
Если мой сервер называется Fruit.mycompany.com, я могу получить доступ к трем приложениям следующим образом:
http://fruit.mycompany.com:8080/quince
http://fruit.mycompany.com:8080/pineapple
http://fruit.mycompany.com:8080/lime
Далее я создал три поддомена, которые являются псевдонимами сервера Fruit.
http://quince.mycompany.com
http://pineapple.mycompany.com
http://lime.mycompany.com
Как я могу заставить каждый поддомен указывать на соответствующее приложение?
Я хочу http://quince.mycompany.com на самом деле открыть http://fruit.mycompany.com:8080/айва.
В Apache я бы использовал тег VirtualHost, чтобы указать каждому поддомену правильный корень документа.Как мне это сделать с помощью JBoss или Tomcat?
Могу ли я сделать это с перенаправлением (есть ли у Tomcat что-то вроде mod_rewrite)?
Решение 2
Я отказался от Tomcat.
Ситуация стала слишком сложной.
У меня уже есть веб-сайт, работающий на порту 80 (в отдельном экземпляре JBoss).
У меня есть эти три приложения: айва, ананас и лайм, работающие на собственном экземпляре JBoss на порту 8080.
Чтобы решить мою проблему, я просто написал функцию JavaScript на индексной странице веб-сайта, работающего на порту 80.
я проверяю расположение чтобы увидеть, какой домен вызывается, а затем перенаправить на соответствующий веб-сайт через порт 8080.
Скрипт выглядит примерно так:
var whois=location+" ";
if (whois.indexOf("quince.mycompany.com") > -1)
{
setTimeout('window.location.replace("http://quince.mycompany.com:8080/quince/");', 10);
exit;
}
if (whois.indexOf("lime.mycompany.com") > -1)
{
setTimeout('window.location.replace("http://lime.mycompany.com:8080/lime/");', 10);
exit;
}
...
// otherwise redirect to the app running on port 80
setTimeout('window.location.replace("http://fruit.mycompany.com/otherapp/");', 10);
Это не совсем то, что я хотел, но, по крайней мере, у моих пользователей теперь есть ярлык URL, и им не нужно запоминать номера портов:http://lime.mycompany.com перенаправляет на -> http://lime.langara.bc.ca:8080/lime
Другие советы
Томкат поддерживает виртуальные хосты.Вам в основном придется:
1) Измените порт «прослушивания» tomcat на 80 вместо 8080.
2) Изменить кота server.xml
чтобы перечислить ваши серверы:
<Engine name="Catalina" defaultHost="quince">
<Host name="quince" appBase="quince_apps"/>
<Host name="pineapple" appBase="pineapple_apps"/>
<Host name="lime" appBase="lime_apps"/>
</Engine>
3) Переместите каждое приложение в папку «ROOT» соответствующей папки «_apps».
Когда я оказался в похожей ситуации, я решил вместо этого использовать перенаправление Apache;однако у меня уже был Apache, обслуживающий статические страницы (публичный веб-сайт).
Вы смотрели Tomcat Mod_jk? http://tomcat.apache.org/connectors-doc/ ?