以前在项目中须要单服务器实现多域名,由于域名是直接指向ip的,因此认为单服务器Tomcat只能实现单域名映射(端口80),可是对Nginx有部分了解,因此使用了Nginx的基于域名的虚拟主机设置(server_name),后来看资料发现Tomcat也支持多虚拟主机:web
Nginx配置:服务器
server { server_name ~^(www\.)?(.+)$; location / { // 指向Tomcat实例 proxy_pass http://127.0.0.1:8080/; } } server { server_name domain.com; location / { root /sites/default; } }
基于host的虚拟主机:app
<Engine name="Catalina" defaultHost="host0"> <Host name="host0" appBase="webapps0" unpackWARs="true" autoDeploy="true"> <Host name="host1" appBase="webapps1" unpackWARs="true" autoDeploy="true">
另外,单Tomcat支持多端口监听:dom
<Service name="Catalina0"> <Service name="Catalina1">