Вопрос

новичок в 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/ ?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top