Это старый, но поскольку я добираюсь сюда до первой страницы 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».
является tomcat и apache на одной физической машине? Является ли tomcat и apache одним и тем же процессом или двумя разными процессами? – Erik
Привет, Erik, tomcat и apache находятся на одной физической машине, и это два разных процесса. –
Как вы перенаправляете на данный момент? Использование .htaccess? Можете ли вы предоставить эти строки кода? – JochenJung