以前在項目中須要單服務器實現多域名,由於域名是直接指向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">