Как направить субдомены в правильное приложение JBoss? - PullRequest
2 голосов
/ 02 октября 2009

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

В apache я бы использовал тег VirtualHost, чтобы указать каждому поддомену правильный корень документа. Как мне сделать это с JBoss или Tomcat?

Могу ли я сделать это с перенаправлением (есть ли у Tomcat что-то вроде mod_rewrite)?

Ответы [ 3 ]

3 голосов
/ 02 октября 2009

Tomcat поддерживает виртуальных хостов . Вам в основном придется:

1) Измените порт прослушивания tomcat на 80 вместо 8080.

2) Измените tomcat's 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 уже обслуживал статические страницы (общедоступный веб-сайт).

1 голос
/ 29 октября 2009

Я отказался от Tomcat.

Ситуация стала слишком сложной.
У меня уже есть веб-сайт, работающий на порту 80 (на отдельном экземпляре JBoss).
У меня есть три приложения: айва, ананас и лайм, запущенные на собственном экземпляре JBoss через порт 8080.

Чтобы решить мою проблему, я просто написал функцию javascript на странице индекса веб-сайта, работающего через порт 80.

Я проверяю location , чтобы увидеть, какой домен вызывается, а затем перенаправляю на соответствующий веб-сайт через порт 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

0 голосов
/ 02 октября 2009

Вы смотрели на Tomcat Mod_jk http://tomcat.apache.org/connectors-doc/?

...