Tomcat學習筆記(四)——虛擬主機

一、基於主機名的虛擬主機

網絡環境:

1. 瀏覽器訪問基於主機名的虛擬主機時,訪問URL必須採用主機名,不能使用IP地址

2.整個網絡系統中必須建立主機名與IP地址的映射關係 

  2.1使用本地  Hosts 文件建立主機名與IP的映射關係(C:\Windows\System32\drivers\etc\Hosts)

        127.0.0.1              www.andgoo.cn

        127.0.0.1              www.pds.cn

       2.2 使用DNS (要錢的)

在設置好Hosts 文件後使用命令行ping localhost  和www.pds.cn  都能ping  通

創建兩個虛擬主機的虛擬目錄結構如下:

F:\web

|———+ VM1

|—————+ROOT

|————————+WEB-INF

|————————+index.html

|———+ VM2

|—————+ROOT

|————————+WEB-INF

|————————+index.html

修改 server.xml 文件

添加以下代碼直 server.xml 文件的<Engine> 元素中

      <Host name="www.andgoo.cn"  appBase="F:\web\VM1"
            unpackWARs="true" autoDeploy="true" />
      <Host name="www.pds.cn"  appBase="F:\web\VM2"
            unpackWARs="true" autoDeploy="true" />

測試:

1.  重啓Tomcat

2.  瀏覽器測試:

URL:http://www.andgoo.cn:8080/index.html

 

 

二、基於端口號的虛擬主機

配置原理: 

1.  一個<Connector> 元素用於配置一個對外的連接器,對於Web服務器的每一個監聽端口號,都要配置一個獨立的<Context>元素

2.   一個<Connector> 元素對應的連接器必須有一個<Engine> 元素關聯

3.   將一個或多個<Context> 元素與<Engine> 元素關聯的方式:將<Context> 元素與<Engine> 元素嵌套在同一個<Service> 元素中

 配置方法:

在 server.xml 文件 的  <Server> 元素裏面添加另一個 <Services>  元素

  <Service name="secend-serv">
   <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
               
    <Engine name="Catalina" defaultHost="www.andgoo.cn">
     
      <Host name="www.andgoo.cn"  appBase="F:\web\VM1"
            unpackWARs="true" autoDeploy="true" />
            
      <Host name="www.pds.cn"  appBase="F:\web\VM2"
            unpackWARs="true" autoDeploy="true" />  
             
    </Engine>       
  </Service>

注意:

1.   <Service>  元素的 name  屬性名稱必須與原 <Service> 名稱不同,因此修改爲:secend-serv

2.   <Engine>元素的 port  屬性修改爲  80(或者其他你想要的不被佔用的端口)

3.   <Engine>元素的 defaultHost 屬性修改爲所包含的一個 <Host> 屬性的 name 屬性值,我選用  www.andgoo.cn

4.   此部分我沒有測試成功,正在嘗試中……

 

三、基於IP地址的虛擬主機

 1.    HTTP 1.0 不支持Host 字段,在站點統一使用80 端口時,人嗎只能採用不同的IP地址來建立虛擬主機

缺點:每個虛擬主機佔用一個IP,IP消耗嚴重

 2.    HTTP 1.1 可以使用不同的主機名建立多個WEB站點,所以提供商一般不再建立基於IP地址的虛擬主機服務

 3.    Tomcat 不提供基於IP地址的虛擬主機方式 

 

 

張孝祥老師的測試方式如下(我用下面方法無法測試,不知道爲什麼):

1. CMD 命令行下運行:telnet   localhost  8080

2. Ctrl  +  ]   , 然後回車

3.  GET   /test.html    HTTP/1.1

     Host:主機名

說明:主機名若不寫,默認爲localhost

 

發佈了36 篇原創文章 · 獲贊 23 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章