天在論壇上看見有人問
如何將 IP 綁定到 Tomcat ,估計(jì)提問者是想實(shí)現(xiàn)虛擬主機(jī)的功能。什么是虛擬主機(jī)?虛擬主機(jī)是使用特殊的
軟硬件技術(shù),把一臺(tái)計(jì)算機(jī)主機(jī)分成一臺(tái)臺(tái)"虛擬"的主機(jī),每一臺(tái)虛擬主機(jī)都具有獨(dú)立的域名和 IP 地址(或共
享的 IP 地址)有完整的 Internet 服務(wù)器(WWW、FTP、Email等)功能。利用“虛擬主機(jī)”技術(shù),每一臺(tái)虛擬
主機(jī)和一臺(tái)獨(dú)立的主機(jī)完全一樣,每一臺(tái)虛擬主機(jī)都具有獨(dú)立的域名,具有完整 Internet 服務(wù)器功能。
Tomcat 支持虛擬主機(jī)技術(shù),不需要額外的插件,而且配置簡(jiǎn)單。
一 準(zhǔn)備
我們將配置兩臺(tái)虛擬主機(jī),假設(shè)域名分別為
www.sentom1.net
www.sentom2.net
為了測(cè)試方便,請(qǐng)?jiān)诳蛻魴C(jī)的:
Win2K:\\WINNT\system32\drivers\etc\hosts
Linux:/etc/hosts
文件中增加下面內(nèi)容,然后檢查一下這兩個(gè)域名是否解析正確。
192.168.0.1 www.sentom1.net
192.168.0.1 www.sentom2.net
當(dāng)然,在生產(chǎn)環(huán)境中這樣做是不行的,需要的在 DNS 上做相應(yīng)的域名解析。
二 Tomcat安裝
Tomcat 的安裝不在本文的討論范圍,請(qǐng)參考
這里。請(qǐng)確保Tomcat安裝正確,不然請(qǐng)不要繼續(xù)進(jìn)行下面的配置步驟。
將 tomcat 目錄下的 webapps 目錄在同一目錄復(fù)制一份,目錄名分為 webapps2 ,然后將 webapps 目錄改名
為 webapps1 。最后 tomcat 的目錄結(jié)構(gòu)大致如下:
tomcat
|--bin
|--common
|--conf
|--logs
|--server
|--shared
......
|--webpapps1
|--webpapps2
|--work
最后,寫一個(gè)簡(jiǎn)單 html 文件用于測(cè)試,文件名為 test.html ,文件內(nèi)容如下:
<HTML>
<HEAD>
<TITLE>測(cè)試</TITLE>
</HEAD>
<BODY>
<P align="center">你現(xiàn)在訪問的是 <FONT COLOR="#FF0000">www.sentom1.net</FONT></P>
</BODY>
</HTML>
將 test.html 文件分別在 tomcat/webapps1/ROOT、tomcat/webapps2/ROOT 目錄放置一份,然后將
tomcat/webapps2/ROOT/test.html 文件內(nèi)容中“www.sentom1.net”改為“www.sentom2.net”。
至此,前期的準(zhǔn)備工作做完了,全是一些體力活。
三 配置虛擬主機(jī)
前面提到了獨(dú)立 IP 和共享的 IP。本文介紹的是共享的 IP 模式,這種模式就是所有的虛擬主機(jī)都使用同一
IP 。目前國(guó)內(nèi) IDC 提供的虛擬主機(jī)都是這種模式。這種模式的優(yōu)點(diǎn)是節(jié)約數(shù)量有限的 IP ,缺點(diǎn)就是虛擬主
機(jī)只能通過域名訪問而不能通過 IP 訪問(其實(shí)也不算是缺點(diǎn),只對(duì)郵件系統(tǒng)中用戶的訪問方式有一點(diǎn)點(diǎn)影響
)。而另外一種獨(dú)立 IP 模式主要應(yīng)用在郵件服務(wù)中,這里就不做介紹了。
配置 www.sentom1.net 虛擬主機(jī)
打開 tomcat/conf/server.xml 文件,將 Host 元素之間的內(nèi)容全部刪掉,然后把下面內(nèi)容加如到 Host 元素
原來的位置。
<Host name="www.sentom1.net" debug="0" appBase="webapps1"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="sentom1_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="sentom1_log." suffix=".txt"
timestamp="true"/>
</Host>
配置 www.sentom2.net 虛擬主機(jī)
將下面內(nèi)容追加到 Host 元素后面,注意 Host 元素中 name 屬性和 appBase 屬性的值的變化。
<Host name="www.sentom2.net" debug="0" appBase="webapps2"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="sentom2_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="sentom2_log." suffix=".txt"
timestamp="true"/>
</Host>
現(xiàn)在可以啟動(dòng) Tomcat 了,分別訪問
http://www.sentom1.net:8080/test.html
http://www.sentom2.net:8080/test.html
如果訪問得到的頁面內(nèi)容分別是下面的內(nèi)容,那表明虛擬主機(jī)已經(jīng)配置成功了。否則,請(qǐng)檢查你的配置過程并
重新按照文檔配置。
你現(xiàn)在訪問的是 www.sentom1.net
你現(xiàn)在訪問的是 www.sentom2.net
四 參考
http://jakarta.apache.org/tomcat/