tomcat 實現多埠多域名訪問
阿新 • • 發佈:2018-12-17
在我們部署專案到Tomcat
的時候,有時候會配置通過域名訪問專案。接下來我們就來了解一下多域名多埠訪問專案的相關配置。
演示環境
- Tomcat 8.5
進行配置
多埠訪問
當一個專案需要使用多個埠號去訪問的時候,只需要在Service
標籤下進行這樣簡單的配置一下就好:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port ="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
這樣就保證了當Tomcat
執行起來的時候,同時監聽多個埠,通過8080
和8081
埠來訪問專案。
多域名訪問
配置專案的多域名的訪問,最簡單的方式就是在Host
標籤下配置Alias
標籤:
<Host name="www.jerome.xin" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias >domain.jerome.xin</Alias>
<Alias>domain2.jerome.xin</Alias>
<Context docBase="/project" path=""/>
</Host>
如果是將Host
的內容複製一份,只修改name
屬性也可以達到同樣的效果。可以通過www.jerome.xin
、domain.jerome.xin
和domian2.jerome.xin
這些域名來訪問專案。
多埠多域名訪問
配置這個就是將Service
標籤以及標籤下的內容複製一下修改name
,然後配置不同Connector
Host#name
屬性,如下所示:
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="www.jerome.xin" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context docBase="/project1" path=""/>
</Host>
</Engine>
</Service>
<Service name="Catalina1">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="www.jeromezhu.xin" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context docBase="/project2" path=""/>
</Host>
</Engine>
</Service>
這樣的配置就實現了,通過www.jerome.xin:8080
訪問到project1
專案,通過www.jeromezhu.xin:8081
訪問到project2
專案。
總結
通過上面的配置,我們已經完成了通過域名訪問專案的各種方式。但是配置多域名的時候稍有不慎就會出現重複載入資源的問題。這個問題我在別的文章中進行說明。
原文連結:tomcat 實現多埠多域名訪問