時(shí)間一久連tomcat配置域名都忘了....
現(xiàn)在很多的公司的網(wǎng)站都是用tomcat作為應(yīng)用服務(wù)區(qū)的,可是對于初學(xué)者,8080端口號是如何去掉的,這些網(wǎng)站是如何和域名綁定到一起的呢?一個(gè)
tomcat是如何綁定多域名?并且這些域名是如何對應(yīng)不同的項(xiàng)目呢?而且我的服務(wù)器沒放在機(jī)房,放在我的本地,我應(yīng)該如何把我的服務(wù)器給映射到外
網(wǎng)?這一系列的問題,今天就這個(gè)問題,我來說一下。
1. 域名。現(xiàn)在的域名不是很貴,有很多人都有,而我們注冊域名的網(wǎng)站也會有一個(gè)DNS助解析,就是把服務(wù)器的IP綁定到這些域名上。
2. 我們域名有了,現(xiàn)在就來說說我們的項(xiàng)目;比如說我現(xiàn)在有兩個(gè)項(xiàng)目都在我的這個(gè)tomcat下面。那我們輸入
http://localhost:8080
?/abc就可以訪問
到我們abc這個(gè)項(xiàng)目了,但是端口號8080如何去掉呢?在tomcat的conf文件夾下有一個(gè)server.xml。我們打開這個(gè)文件,找到8080,只需要把8080改成80
即可。當(dāng)我們再次輸入
http://localhost/abc
即可。
3. 可是我們的域名如何跟項(xiàng)目綁定到一起呢?我們再次找到tomcat下面的conf文件夾里面的server.xml。修改<Host name="我們所要綁定的域名"
debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"></Host>
4. 當(dāng)啟動tomcat的時(shí)候,輸入我們綁定的域名,是不是看到了我們的tomcat。可是我們想訪問我們的項(xiàng)目還得再域名后面加上項(xiàng)目名稱才能訪問到,也
就是說到現(xiàn)在我們的域名還沒跟項(xiàng)目綁定到一起。我們在看一下第三部,想讓我們的項(xiàng)目和域名綁定到一起,我們只需要在</Host>前面加上<Context
docBase="項(xiàng)目名" path=""? reloadable="true" >即可。
例如:<Host name="
www.abc.com
" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false"
xmlNamespaceAware="false"><Context docBase="baidu" path=""? reloadable="true" ></Host>
5. 當(dāng)我們的有兩個(gè)項(xiàng)目都放在同一個(gè)tomcat下的時(shí)候,我們只需要把<Host></ Host>加上兩個(gè)既可以完成我們的2個(gè)項(xiàng)目的綁定,但是項(xiàng)目名稱別忘了
改哦。
6. 當(dāng)我們的服務(wù)器自己維護(hù)(沒有放在機(jī)房),我們需要對我們的路由做一下映射。就拿我的路由來舉例。我的路由是TP-LINK WR340G型號,進(jìn)入路由
后,我們能找到一個(gè)轉(zhuǎn)發(fā)規(guī)則,那里面有一個(gè)虛擬服務(wù)器的這項(xiàng),點(diǎn)擊新增條目以后會有:服務(wù)端口號、IP地址、協(xié)議、狀態(tài)、常用服務(wù)端口號。我們
只需在這里IP地址(服務(wù)器的局域網(wǎng)IP),協(xié)議選擇ALL(有的路由好像沒有這項(xiàng),那就不需要填寫了),狀態(tài)選擇生效,常用服務(wù)端口號選擇HTTP或者
WEB即可。這時(shí)默認(rèn)的端口號為80。當(dāng)常用服務(wù)端口號沒有HTTP或者WEB這項(xiàng)時(shí),可以選擇DNS,然后手動把端口號改成80。點(diǎn)擊生效。保存即可。如果說
本人說的路由映射對您不適用或者沒有看明白,可以上網(wǎng)找各種路由的映射方法。
7. 這個(gè)時(shí)候我們在輸入我們的域名,是不是就直接訪問到我們的項(xiàng)目了。
----------------------------------------------------------------
域名綁定與虛擬目錄設(shè)置:
server.xml 的修改方式如下:
(一)多域名綁定
1.如果你要綁定網(wǎng)站,首先是要把tomcat的默認(rèn)訪問端口8080,修改成80
原始:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改后:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
其實(shí)這里就是把port:8080,修改成port:80就可以了,其他的參數(shù)不變
2.接下來就是重點(diǎn)了哈哈...
單個(gè)域名綁定:
原始:
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" />
</Engine>
當(dāng)然這里我把注釋代碼統(tǒng)統(tǒng)刪除掉了,省的礙眼
修改后:
<Host name="chengqun.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="d:\wwwroot\chengqun"></Context>
</Host>
<Host name="chengqun1.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun1"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="d:\wwwroot\chengqun1"></Context>
</Host>
多域名綁定:
<Host name="chengqun.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>chengqun.202.71one.com</Alias>
<Alias>chengqun1.202.71one.com</Alias>
<Alias>chengqun2.202.71one.com</Alias>
<Context path="/" docBase="d:\wwwroot\chengqun"></Context>
</Host>
這里面的參數(shù)還有很多,我也不是很清楚,不過這樣做確實(shí)可以實(shí)現(xiàn)多域名綁定哈哈.而且網(wǎng)站頁面修改了只要直接覆蓋就可以了,tomcat可以自動更新類
和頁面,當(dāng)然如果修改了web.xml或lib,則需要重啟tomcat才可以.
(二)虛擬目錄
(1)
<Host name="chengqun.202.71one.com" debug="0" appBase="d:\wwwroot\chengqun"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/chengqun" docBase="d:\wwwroot\chengqun"></Context>
</Host>
其中,Host標(biāo)記是用來配置虛擬主機(jī)的,就是可以多個(gè)域名指向一個(gè)tomcat,格式只要參考默認(rèn)的就
可以了。
<context>是Host標(biāo)記的子元素吧,表示一個(gè)虛擬目錄,它主要有兩個(gè)屬性,path就相當(dāng)于虛擬目錄名字,
而 docbase則是具體的文件位置。在這里我的虛擬路徑名稱為chengqun,實(shí)際上我的程序也就是html、jsp、servlet都 放在了d:\wwwroot\chengqun這
個(gè)目錄下了。
這樣我就可以通過 chengqun.202. com/chengqun 訪問我的這個(gè)虛擬目錄了。
另外一種方法是:
<Host name="chengqun.202. com" debug="0" appBase="d:\wwwroot\chengqun"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/" docBase="d:\wwwroot\chengqun"></Context>
</Host>
這樣設(shè)置以后,輸入域名可以訪問這個(gè)站點(diǎn)程序了(Context path="/"這里不同)
(2)
沒有指定默認(rèn)站點(diǎn),所以直接輸入IP的時(shí)候,無法訪問。如何讓輸入ip就可以訪問指定的站點(diǎn)呢?
修改server.xml的 <Engine name="Catalina" defaultHost="chengqun.202. com">
這樣就可以實(shí)現(xiàn)了輸入ip訪問chengqun.202. com這個(gè)站點(diǎn)的程序了!
----------------------------------------
tomcat下的配置都在conf下的server.xml下實(shí)現(xiàn)。。。
里面從高到低分為:
Server
--Service
--Connector
--Engine
--Host
--Context
首先把通訊接口下的PORT改為80,這樣就不用在瀏覽器中輸入端口號了,如:
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
port="80"?????????????? maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
HOST代表虛擬主機(jī):
默認(rèn)有
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
所以我們平時(shí)都是直接輸入
http://localhost
:端口號/項(xiàng)目名?? 就好了。。
假如我現(xiàn)在有個(gè)項(xiàng)目在E盤下的workspace目錄,項(xiàng)目名為LZW
我不想部署在tomcat下的webapp目錄下,而是直接想在TOMCAT下加載這個(gè)項(xiàng)目
并且用個(gè)域名(
www.pw88.com
)來映射。這樣我們可以加上下面這段代碼
<Host name="
www.pw88com
" appBase="e:\workspace\LZW
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="WebRoot" debug="0" reloadable="true" crossContext="true" />
</Host>
appBase為項(xiàng)目的絕對路徑,docBase為WEB目錄
假如我現(xiàn)在的圖片都放在d:\ext.lzw.com\img下,我想用個(gè)二級域名
(img.lzw.com)映射它,假如在d:\ext.lzw.com\img下放入一張圖片1.jpg,我們就
可以輸入img.lzw.com/1.jpg來訪問它了。。加上下面代碼就可以實(shí)現(xiàn)了。。
<Host name="img.lzw.com" appBase="d:\ext.lzw.com\img"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="" debug="0" reloadable="true" crossContext="true" />
</Host>
最終我們要在本地訪問域名,還得修改相愛HOST文件。。打開
C:\WINDOWS\system32\drivers\etc\hosts
加上
127.0.0.1???????
www.pw88.com
127.0.0.1?????? img.lzw.com
對tomcat下配置 一ip對多域名的方法詳細(xì)如下,按下面配置一定能成功,經(jīng)過測試了.
<Host name="localhost" debug="0" appBase="D:\Tomcat 5.0\webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>localhost.com</Alias>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="D:\Tomcat 5.0\webapps\gg" reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>
<Host name="one.localhost" debug="0" appBase="D:\Tomcat 5.0\webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>one.localhost.com</Alias>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="D:\Tomcat 5.0\webapps\kk\a" reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>
<Host name="two.localhost" debug="0" appBase="D:\Tomcat 5.0\webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>two.localhost.com</Alias>
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="D:\Tomcat 5.0\webapps\kk\b" reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>
因無域名解析服務(wù)器,所以在hosts上配,來模擬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)過多方面嘗試,終于在tomcat下配置成功了.
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
