TOMCAT多域名虛擬目錄配置
TOMCAT 的域名配置現(xiàn)在很多的公司的網(wǎng)站都是用tomcat 作為應(yīng)用服務(wù)區(qū)的,可是對(duì)于初學(xué)者,8080端口號(hào)是如何去掉的,這些網(wǎng)站是如何和域名綁定到一起的呢?一個(gè)tomcat 是如何綁定多域名?并
TOMCAT 的域名配置
現(xiàn)在很多的公司的網(wǎng)站都是用tomcat 作為應(yīng)用服務(wù)區(qū)的,可是對(duì)于初學(xué)者,8080端口號(hào)是如何去掉的,這些網(wǎng)站是如何和域名綁定到一起的呢?一個(gè)tomcat 是如何綁定多域名?并且這些域名是如何對(duì)應(yīng)不同的項(xiàng)目呢?這一系列的問(wèn)題,今天就這個(gè)問(wèn)題,我來(lái)說(shuō)一下。
1. 域名?,F(xiàn)在的域名不是很貴,有很多人都有,而我們注冊(cè)域名的網(wǎng)站也會(huì)有一個(gè)DNS 助解析,就是把服務(wù)器的IP 綁定到這些域名上。
2. 我們域名有了,現(xiàn)在就來(lái)說(shuō)說(shuō)我們的項(xiàng)目;比如說(shuō)我現(xiàn)在有兩個(gè)項(xiàng)目都在我的這個(gè)tomcat 下面。那我們輸入http://localhost:8080 /abc就可以訪問(wèn)
到我們abc 這個(gè)項(xiàng)目了,但是端口號(hào)8080如何去掉呢?在tomcat 的conf 文件夾下有一個(gè)server.xml 。我們打開(kāi)這個(gè)文件,找到8080,只需要把8080改成80即可。當(dāng)我們?cè)俅屋斎雋ttp://localhost/abc即可。
3. 可是我們的域名如何跟項(xiàng)目綁定到一起呢?我們?cè)俅握业絫omcat 下面的conf 文件夾里面的server.xml 。修改 xmlValidation="false"xmlNamespaceAware="false">
4. 當(dāng)啟動(dòng)tomcat 的時(shí)候,輸入我們綁定的域名,是不是看到了我們的tomcat ??墒俏覀兿朐L問(wèn)我們的項(xiàng)目還得再域名后面加上項(xiàng)目名稱才能訪問(wèn)到,也就是說(shuō)到現(xiàn)在我們的域名還沒(méi)跟項(xiàng)目綁定到一起。我們?cè)诳匆幌碌谌浚胱屛覀兊捻?xiàng)目和域名綁定到一起,我們只需要在前面加上
例如: docBase="baidu" path="" reloadable="true" >
5. 當(dāng)我們的有兩個(gè)項(xiàng)目都放在同一個(gè)tomcat 下的時(shí)候,我們只需要把
----------------------------------------------------------------
域名綁定與虛擬目錄設(shè)置:
server.xml 的修改方式如下:
(一)多域名綁定
1. 如果你要綁定網(wǎng)站, 首先是要把tomcat 的默認(rèn)訪問(wèn)端口8080, 修改成80
原始:
修改后:
其實(shí)這里就是把port:8080,修改成port:80就可以了, 其他的參數(shù)不變
2. 接下來(lái)就是重點(diǎn)了哈哈...
單個(gè)域名綁定:
原始:
當(dāng)然這里我把注釋代碼統(tǒng)統(tǒng)刪除掉了, 省的礙眼
修改后:
多域名綁定:
這里面的參數(shù)還有很多, 我也不是很清楚, 不過(guò)這樣做確實(shí)可以實(shí)現(xiàn)多域名綁定哈哈. 而且網(wǎng)站頁(yè)面修改了只要直接覆蓋就可以了,tomcat 可以自動(dòng)更新類和頁(yè)面, 當(dāng)然如果修改了web.xml 或lib, 則需要重啟tomcat 才可以.
(二)虛擬目錄
(1)
其中,Host 標(biāo)記是用來(lái)配置虛擬主機(jī)的,就是可以多個(gè)域名指向一個(gè)tomcat ,格式只要參考默認(rèn)的就可以了。
這樣我就可以通過(guò) chengqun.202. com/chengqun訪問(wèn)我的這個(gè)虛擬目錄了。
另外一種方法是:
unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">
這樣設(shè)置以后,輸入域名可以訪問(wèn)這個(gè)站點(diǎn)程序了(Context path="/"這里不同)
(2)
沒(méi)有指定默認(rèn)站點(diǎn),所以直接輸入IP 的時(shí)候,無(wú)法訪問(wèn)。如何讓輸入ip 就可以訪問(wèn)指定的站點(diǎn)呢?
修改server.xml 的
這樣就可以實(shí)現(xiàn)了輸入ip 訪問(wèn)chengqun.202. com這個(gè)站點(diǎn)的程序了!
----------------------------------------
tomcat 下的配置都在conf 下的server.xml 下實(shí)現(xiàn)。。。
里面從高到低分為:
Server
--Service
--Connector
--Engine
--Host
--Context
首先把通訊接口下的PORT 改為80,這樣就不用在瀏覽器中輸入端口號(hào)了,如:
acceptCount="100"connectionTimeout="20000" disableUploadTimeout="true" /> HOST 代表虛擬主機(jī): 默認(rèn)有 autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"> 所以我們平時(shí)都是直接輸入http://localhost:端口號(hào)/項(xiàng)目名 就好了。。 假如我現(xiàn)在有個(gè)項(xiàng)目在E 盤下的workspace 目錄,項(xiàng)目名為L(zhǎng)ZW 我不想部署在tomcat 下的webapp 目錄下,而是直接想在TOMCAT 下加載這個(gè)項(xiàng)目 并且用個(gè)域名(www.pw88.com )來(lái)映射。這樣我們可以加上下面這段代碼 appBase="e:/workspace/LZWunpackWARs="true"autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"> appBase 為項(xiàng)目的絕對(duì)路徑,docBase 為WEB 目錄 假如我現(xiàn)在的圖片都放在d:/ext.lzw.com/img下,我想用個(gè)二級(jí)域名 (img.lzw.com )映射它,假如在d:/ext.lzw.com/img下放入一張圖片1.jpg ,我們就 可以輸入img.lzw.com/1.jpg來(lái)訪問(wèn)它了。。加上下面代碼就可以實(shí)現(xiàn)了。。 autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"> 最終我們要在本地訪問(wèn)域名,還得修改相愛(ài)HOST 文件。。打開(kāi) C:/WINDOWS/system32/drivers/etc/hosts 加上 127.0.0.1 www.pw88.com 127.0.0.1 img.lzw.com 對(duì)tomcat 下配置一ip 對(duì)多域名的方法詳細(xì)如下, 按下面配置一定能成功, 經(jīng)過(guò)測(cè)試了. className="org.apache.catalina.logger.FileLogger"directory="logs"prefix="localhost_log." suffix=".txt"timestamp="true"/> className="org.apache.catalina.logger.FileLogger"directory="logs"prefix="localhost_log." suffix=".txt"timestamp="true"/> caseSensitive="false" debug="0"> directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/> caseSensitive="false" debug="0"> 因無(wú)域名解析服務(wù)器, 所以在hosts 上配, 來(lái)模擬dns 解析. 10.1.1.241 localhost指向gg 文件夾 10.1.1.241 localhost.com 指向gg 文件夾 10.1.1.241 one.localhost指向a 文件夾 10.1.1.241 one.localhost.com 指向a 文件夾 10.1.1.241 two.localhost指向b 文件夾 10.1.1.241 two.localhost.com 指向b 文件夾 經(jīng)過(guò)多方面嘗試, 終于在tomcat 下配置成功了. Tomcat 配置多域名和多虛擬路徑如下: 修改conf/server.xml中 resourceName="UserDatabase"/> workDir="c:websdefaultwebwork" /> workDir="c:websdefaultwebworkVitualPath" /> xmlValidation="false" xmlNamespaceAware="false" > workDir="c:websdefaultwebwork" /> workDir="c:websdefaultwebworkVitualPath" /> 從上述的配置文件中可以看出,這個(gè)配置共配置了兩個(gè)域名(不包括localhost ): www.defaultweb.com 和 www.anotherweb.com ,然后配置了localhost ,使之與 www.default.com 一樣,這樣輸入IP 地址就能跑到www.defaultweb.com 了。 同樣還可以看出,www.defaultweb.com 配置了兩個(gè)虛擬路徑,一個(gè)是默認(rèn)路徑"/",另一個(gè)是"/VitrualPath",并且他們都分別指定了各自的網(wǎng)站所在的文件目錄。(localhost 與他的路徑是一致的)。 但是,在配置www.anotherweb.com 時(shí),為什么沒(méi)有指定它的網(wǎng)站文件目錄呢?這是利用了Tomcat 的相對(duì)路徑,appBase="webapps_defaultweb" 表示,這個(gè)網(wǎng)站的文件放在 ${Tomcat_Home}/webapps_defaultweb中。你需要在${Tomcat_Home}/webapps_defaultweb中,建立ROOT 文件夾,并在ROOT 中放置你的網(wǎng)站。當(dāng)然大家也可以直接用絕對(duì)路徑配置,請(qǐng)參照www.default.com 的配置。當(dāng)然,大家也可以看出www.anotherweb.com 并沒(méi)有配置虛擬路徑,大家如果需要的話,也可以自行配置。 PS : resourceName="UserDatabase"/>這部分是Server.xml 中本來(lái)就有的,大家沒(méi)有必要?jiǎng)铀?/p>