2010-07-13 2 views
2

У меня есть ситуация, когда я хочу направить свой корневой домен i.e www.abc.com в контекст в tomcat и * .abc.com в другой контекст в tomcat.Прямой корневой домен к контексту и поддомену в другой контекст

В настоящее время www.abc.com abc.com и * .abc.com указывают на мои ROOTcontext в котом, но я хочу

www.abc.com и abc.com, чтобы указать на ROOT и

* .abc.com в какой-то другой контекст в tomcat.

+0

является tomcat и apache на одной физической машине? Является ли tomcat и apache одним и тем же процессом или двумя разными процессами? – Erik

+0

Привет, Erik, tomcat и apache находятся на одной физической машине, и это два разных процесса. –

+0

Как вы перенаправляете на данный момент? Использование .htaccess? Можете ли вы предоставить эти строки кода? – JochenJung

ответ

0

Это старый, но поскольку я добираюсь сюда до первой страницы Google, он заслуживает ответа.

Я думаю, лучший снимок - добавить «VirtualHost» в ваш httpd и «Host» на ваш сервер tomcat.xml для каждого поддомена. Возьмите это в качестве примера "HelloMultiWorld":

<VirtualHost *:80> 
    ServerName abc.com 
    ServerAlias www.abc.com sd1.abc.com 
    ... 
    ProxyPreserveHost true 
    ProxyPass/ajp://localhost:8009/ 
    ProxyPassReverse/ajp://localhost:8009/ 
    ... 
</VirtualHost> 

И в server.xml Tomcat в:

<Engine defaultHost="localhost" ...> 
    ... 
    <Host name="localhost" appBase="webapps" ...>...</Host> 
    <Host name="sd1.abc.com" appBase="webapps-sd1"...>...</Host> 
</Engine> 

Очевидно, что вам нужно "WebApps" и папку "WebApps-SD1" с их собственным ROOT.war.

С этой конфигурацией HTTPd проксирует все запросы abc.com, www.abc.com и sd1.abc.com для Tomcat (используя AJP - вы также можете использовать HTTP/8080). Tomcat получит запрос с HTTP-заголовком «Host: xxx.abc.com» (из-за «ProxyPreserveHost»). С несколькими «хостами» в server.xml он отправит запрос в соответствии с заголовком «Host». Все неопознанные хосты будут перенаправляться на «defaultHost».