一个 tomcat 服务器同时服务多个虚拟主机,前提是多个域名同时指向这台 tomcat 服务器。假如有两个域名同时指向我们的 tomcat 服务器-dnsname1 和 dnsname2,如果没有我们通过修改 hosts 文件来进行测试。Linux 下 hosts 在/etc/hosts,而 windows 下则是 C:\Windows\System32\drivers\etc\hosts。添加下面两行:
1 2
| 127.0.0.1 dnsname1 127.0.0.1 dnsname2
|
修改$TOMCAT_BASE$/conf/server.xml 文件,在 Engine 下新建两个 host 元素:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <Host name="dnsname1" appBase="/home/user1/webapp" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log_dnsname1" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="dnsname2" appBase="/home/user2/webapp" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log_dnsname2" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>
|
appBase分别指向了不同目录,通常是不同用户的 web 应用目录。
重启 tomcat,通过浏览器分别访问 http://dnsname1 和 http://dnsname2 ,将会获得不同的页面。