更新時間:2020-12-09 17:26:03 來源:動力節點 瀏覽1373次
說到Tomcat配置虛擬主機,我們先來搞懂什么是虛擬主機,我們也許都知道虛擬主機但說起來又不太清楚確切的概念。"虛擬主機"實際上是一臺物理機上搭建的多個web站點,每個web站點獨立運行,互不干擾。在實際開發中,為了提高硬件資源的利用率,通過Tomcat配置虛擬主機的方式,實現服務器的共享。
下面我們從兩個大的方面來講Tomcat配置虛擬主機:
一、Tomcat配置虛擬主機的實現方式
1、基于主機名的虛擬主機
多個域名解析到同一個IP地址,在WEB服務器里添加多個站點,每個站點設定一個主機名。HTTP協議請求里包含了主機名信息,當WEB服務器收到訪問請求時,就可以根據不同的主機名來訪問不同的網站。
步驟:
1)配置域名與Ip的映射管理(對于本地局域網我們使用在host文件中添加;對于大型網絡或者外網網絡則需要配置DNS服務器中Ip地址與域名的映射關系)
在C:\Windows\System32\drivers\etc\hosts文件末尾添加:
127.0.0.1 www.jalja1.org
127.0.0.1 www.jalja2.org
2)配置server.xml
<Host name="www.jalja1.org" appBase="E:/學習/activeMq/app1" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.jalja2.org" appBase="E:/學習/activeMq/app2" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
3)測試
http://www.jalja1.org:8080/
http://www.jalja2.org:8080/
2、基于端口號的虛擬主機
一個IP地址,通過不同的端口實現不同網站的訪問。
步驟:在server.xml 中 設置兩個service組件
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" 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.jalja1.org" appBase="E:/學習/activeMq/app1" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
<Service name="Catalina2">
<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina2" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host name="www.jalja1.org" appBase="E:/學習/activeMq/app2" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
測試:
http://www.jalja1.org:8888/
http://www.jalja1.org:8080/
3、基于IP地址的虛擬主機
服務器使用多網卡配置多個IP地址,然后配置WEB服務器,把多個網站綁定在不同的IP上。(該方式浪費Ip資源,tomcat不支持該方式)
二、Tomcat配置虛擬主機的具體過程
1、需求
1)創建 index.html 頁面
2)將 index.html 資源部署到 D盤 的 demo 目錄中
3)通過 http://www.itbz.com:8888/itbz/index.html 訪問虛擬主機,并訪問 index.html
2、創建頁面
創建 index.html 頁面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>ITBZ</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
Welcome to ITBZ!
</BODY>
</HTML>
3、修改 server.xml 添加 Host 配置
<Host name="www.itbz.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
4、添加 Context 配置<Context path="/itbz" docBase="D:\demo" />
5、修改 windows 的 hosts 文件修改 Windows 系統中的 hosts 文件做域名與 IP 的綁定。hosts 文件位置:C:\Windows\System32\drivers\etc修改內容:127.0.0.1 www.itbz.com
6、訪問資源測試結果
Tomcat配置虛擬主機的實質目的還是為了為提高硬件資源的利用率,實現服務器的資源共享,這也是許多項目開發中不容忽視的需求。我們可以嘗試在本站的Tomcat服務器教程中的實際項目中,體驗一下虛擬主機的實際應用。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習