更新時(shí)間:2020-12-09 17:26:03 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1642次
說到Tomcat配置虛擬主機(jī),我們先來搞懂什么是虛擬主機(jī),我們也許都知道虛擬主機(jī)但說起來又不太清楚確切的概念。"虛擬主機(jī)"實(shí)際上是一臺(tái)物理機(jī)上搭建的多個(gè)web站點(diǎn),每個(gè)web站點(diǎn)獨(dú)立運(yùn)行,互不干擾。在實(shí)際開發(fā)中,為了提高硬件資源的利用率,通過Tomcat配置虛擬主機(jī)的方式,實(shí)現(xiàn)服務(wù)器的共享。
下面我們從兩個(gè)大的方面來講Tomcat配置虛擬主機(jī):
一、Tomcat配置虛擬主機(jī)的實(shí)現(xiàn)方式
1、基于主機(jī)名的虛擬主機(jī)
多個(gè)域名解析到同一個(gè)IP地址,在WEB服務(wù)器里添加多個(gè)站點(diǎn),每個(gè)站點(diǎn)設(shè)定一個(gè)主機(jī)名。HTTP協(xié)議請(qǐng)求里包含了主機(jī)名信息,當(dāng)WEB服務(wù)器收到訪問請(qǐng)求時(shí),就可以根據(jù)不同的主機(jī)名來訪問不同的網(wǎng)站。
步驟:
1)配置域名與Ip的映射管理(對(duì)于本地局域網(wǎng)我們使用在host文件中添加;對(duì)于大型網(wǎng)絡(luò)或者外網(wǎng)網(wǎng)絡(luò)則需要配置DNS服務(wù)器中Ip地址與域名的映射關(guān)系)
在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:/學(xué)習(xí)/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:/學(xué)習(xí)/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、基于端口號(hào)的虛擬主機(jī)
一個(gè)IP地址,通過不同的端口實(shí)現(xiàn)不同網(wǎng)站的訪問。
步驟:在server.xml 中 設(shè)置兩個(gè)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:/學(xué)習(xí)/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:/學(xué)習(xí)/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地址的虛擬主機(jī)
服務(wù)器使用多網(wǎng)卡配置多個(gè)IP地址,然后配置WEB服務(wù)器,把多個(gè)網(wǎng)站綁定在不同的IP上。(該方式浪費(fèi)Ip資源,tomcat不支持該方式)
二、Tomcat配置虛擬主機(jī)的具體過程
1、需求
1)創(chuàng)建 index.html 頁面
2)將 index.html 資源部署到 D盤 的 demo 目錄中
3)通過 http://www.itbz.com:8888/itbz/index.html 訪問虛擬主機(jī),并訪問 index.html
2、創(chuàng)建頁面
創(chuàng)建 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 系統(tǒng)中的 hosts 文件做域名與 IP 的綁定。hosts 文件位置:C:\Windows\System32\drivers\etc修改內(nèi)容:127.0.0.1 www.itbz.com
6、訪問資源測試結(jié)果
Tomcat配置虛擬主機(jī)的實(shí)質(zhì)目的還是為了為提高硬件資源的利用率,實(shí)現(xiàn)服務(wù)器的資源共享,這也是許多項(xiàng)目開發(fā)中不容忽視的需求。我們可以嘗試在本站的Tomcat服務(wù)器教程中的實(shí)際項(xiàng)目中,體驗(yàn)一下虛擬主機(jī)的實(shí)際應(yīng)用。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)