1.基於主機名的虛擬主機配置
- 在隨意盤符下建立一個目錄作為虛擬地址的目錄。例如:F:\virtualhost1,在其下建立 test1.html,寫入內容例如:test
- 在tomcat/conf/service.xml中 加入如下配置一段<Host> 配置
<Host>
......
</Host> 這里的Host配置,是配置文件原本就有的,下面的需要我們自己增加
<Host appBase="F:\virtualhost1" autoDeploy="true" name="site1" unpackWARs="true"> <Context path="" docBase="." debug="0" /> </Host>
- 打開C:\Windows\System32\drivers\etc 下面的hosts文件 加入127.0.0.1 site1
127.0.0.1 localhost //:有了這一行,所以瀏覽器輸入:http://localhost:8080/ 能進入tomcat ,下一行同理
127.0.0.1 site1
假設在tomcat、wenbapps下的ROOT文件夾下有hello.html 內容寫入 hello。
啟動tomcat,在瀏覽器輸入:http://localhost:8080/index.html ----->將顯示 :hello 訪問的是tomcat下的資源
在瀏覽器輸入:http://site1:8080/index.html ------>將顯示 :test 訪問的是F:\virtualhost1 下的資源
實際上 二者的ip是一樣的,都是127.0.0.1 但是卻實現了訪問兩個“主機”上的資源,一個是tomcat下的,一個是F盤下的。假如A,B兩公司很窮,網站公用一台服務器,但又不能夠直接輸入IP來進入,因為只有一個IP,這里在一台電腦上設置虛擬,二者設置不同的虛擬目錄,使用虛擬目錄名來訪問便可實現公用,實際還是一個ip,一台主機。
2.基於端口的虛擬主機配置
- 在隨意盤符下建立一個目錄作為虛擬地址的目錄。例如:F:\virtualhost2,在其下建立 test1.html,寫入內容例如:test2
- 在tomcat/service.xml 里半加入一段 <Service> 配置,如下
<Service>
<Connector ......./>
<Engine defaultHost="localhost" name="Catalina" >
.......
</Engine>
</Service> 這里的配置也是文件原本就有的,下面是增加的。
<Service> <Connector connectionTimeout="20000" port="8082" protocol="HTTP/1.1" redirectPort="8443"/> 因為是基於端口的配置,這里的8082端口是新增的,以后的訪問將用到 <Engine name="second" debug="0"> <Host appBase="F:\virtualhost2" autoDeploy="true" name="site2" unpackWARs="true"> <Context path="" docBase="." debug="0" /> </Host> </Engine> </Service>
啟動tomcat,輸入 http://localhost:8080/index.html ------->將顯示tomcat/webapps/ROOT/index.html 里邊的內容
輸入 http://localhost:8082/index.html --------->將顯示F:\virtualhost2 下的index.html 里邊的內容
這里通過不同的端口進來實現了,不同基於不同端口的虛擬主機的配置。