在Tomcat中實現虛擬主機 (在Tomcat中實現獨立域名映射應用,而不是以目錄的形式)

問題背景:

在常規情況下,如果我們部署2個用到Tomcat中,只能將一個應用命名爲ROOT,在做了域名-IP的映射之後,我們可以通過類似http://www.jangle.xyz的方式訪問該應用。

但如果我們添加一個新的應用:如hello應用, 常規的,我們將通過http://www.jangle.xyz/hello 的方式訪問這個應用服務器。

由於域名映射不能帶目錄,  即:即時做了 hello.jangle.xyz 也不能映射至 123.12.32.45/hello 來實現對應關係。

 

解決方案:

如果希望實現 hello.jangle.xyz 映射至 123.12.32.45  並定位到 hello應用 ,並且

www.jangle.xyz 也映射至123.12.32.45 並定位到ROOT應用。   那麼Tomcat提供Host的配置方式,實現這樣的需求。

參考:Tomcat的總體架構概覽2(v8.5)(用server.xml的視角解讀)

我們在server.xml中,找到Engine節點下的Host節點,  編寫一個Host的兄弟節點(即Engine的子節點),如下:

 <Host name="hello.jangle.xyz"  >
        <Context docBase="D:/jangle/hello" path="/"></Context>
 </Host>

docBase 是應用的絕對路徑,  path="/" 表示頂級路徑。  這樣,我們就可以使用地址http://hello.jangle.xyz 訪問到 123.12.32.45的hello項目, 並且 http://www.jangle.xyz 所訪問的ROOT項目不受影響。
 

在<Host>中添加<Alias>,設置別名,即實現多個域名對應一個主機。

<Host ...>
<Alias>blog.jangle.xyz</Alias>
</Host>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章