在平常工做中,咱們可能會碰到這樣的需求,a.xx.com b.xx.com c.xx.com,須要解析到同一個tomcat,而後經過tomcat程序去判斷返回相應的內容。nginx
解決思路關鍵點:tomcat
會須要用到nginx的泛解析,在server_name配置 *.xx.combash
location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
而後在tomcat的server.xml中配置服務器
<Host name="localhost" appBase="/data/wwwroot/xx.com" unpackWARs="true" autoDeploy="true">
總結:app
由於服務器環境複雜,經過nginx處理靜態請求,動態資源交給tomcat處理,且在nginx配置了多個域名,tomcat的配置文件更是有10多個server,每一個server的host name都是對應的域名,當時光想着nginx處理泛解析,卻忘記了tomcat支持泛解析的關鍵點。把tomcat對應的host name改成localhost便可。code