Это старый, но поскольку я перехожу сюда с первой страницы Google, он заслуживает ответа.
Полагаю, лучше всего добавить "VirtualHost" в ваши httpd и "Host"в server.xml вашего tomcat для каждого субдомена.Возьмите это как пример «HelloMultiWorld»:
<VirtualHost *:80>
ServerName abc.com
ServerAlias www.abc.com sd1.abc.com
...
ProxyPreserveHost true
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
...
</VirtualHost>
И в файле Tomcat server.xml:
<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 запрос будет перенаправлен в соответствии с заголовком «Хост».Все неопознанные хосты будут перенаправлены на defaultHost.