亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

tomcat配置虛擬主機(jī)

系統(tǒng) 2360 0
一、網(wǎng)站 系統(tǒng) 的組成 只要在一臺計(jì)算機(jī)上安裝了 WEB 服務(wù)器 軟件 ,從 功能 上講,這臺計(jì)算機(jī)就可以稱為 WEB 服務(wù)器。一個(gè)網(wǎng)站的規(guī)模可大可小,功能可多可少,最簡單的網(wǎng)站只需要一臺 Web 服務(wù)器即可對外提供網(wǎng)頁瀏覽服務(wù)。復(fù)雜的網(wǎng)站包括多臺 WEB 服務(wù)器組成的群集系統(tǒng)、負(fù)載均衡設(shè)備、具有緩存功能的代理服務(wù)器(可以有多級,甚至包括放置在服務(wù)器端的緩存系統(tǒng))、 數(shù)據(jù)庫 系統(tǒng)等,如圖 2.2 所示。


tomcat配置虛擬主機(jī)
2.2

www.sina.com 網(wǎng)站系統(tǒng)采用的基本上就是圖 2.2 所示的架構(gòu),不同地區(qū)的人們在訪問 www.sina.com 站點(diǎn)時(shí),瀏覽器實(shí)際上所訪問的服務(wù)器是不一樣的,例如,吉林省的 用戶 訪問的服務(wù)器實(shí)際是 sina 放在吉林地區(qū)的代理服務(wù)器,湖北省的用戶訪問的服務(wù)器實(shí)際是 sina 放在湖北地區(qū)的代理服務(wù)器。各地區(qū)的瀏覽器訪問 www.sina.com 站點(diǎn)的過程如圖 2.3 所示。


tomcat配置虛擬主機(jī)
2.3

為了能夠讓瀏覽器透明地訪問到 WEB 站點(diǎn),讓用戶感覺不到是在訪問區(qū)域代理服務(wù)器,在 DNS 系統(tǒng)中需要將 www.sina.com 主機(jī)名指向所有的區(qū)域代理服務(wù)器的 IP 地址。在瀏覽器訪問 www.sina.com 站點(diǎn)中的頁面而向 DNS 服務(wù)器請求解析 www.sina.com 主機(jī)名時(shí), DNS 服務(wù)器根據(jù)訪問者的地理位置信息返回他附近的區(qū)域代理服務(wù)器的 IP 地址,這樣,瀏覽器的訪問請求將發(fā)送給該區(qū)域代理服務(wù)器。只有當(dāng)區(qū)域代理服務(wù)器中沒有瀏覽器要訪問的頁面時(shí),區(qū)域代理服務(wù)器才去從真正的 www.sina.com 站點(diǎn)服務(wù)器上獲取該頁面并進(jìn)行緩存,以后該區(qū)域的其他瀏覽器就都可以就近從區(qū)域代理服務(wù)器中訪問到該頁面了,從而大大提高了訪問效率和減少了 網(wǎng)絡(luò) 流量。



WEB 瀏覽器與 WEB 服務(wù)器建立連接后,除了將請求 URL 中的資源路徑發(fā)送給 WEB 服務(wù)器外,還會將 URL 中的主機(jī)名部分作為 HTTP 請求消息的 Host 頭發(fā)送給 WEB 服務(wù)器。例如,在瀏覽器地址欄中輸入 http://www.it315.org ,瀏覽器發(fā)送給 www.it315.org 主機(jī)上的 WEB 服務(wù)器的請求消息內(nèi)容如下:

GET / HTTP/1.1<
回車 >


Host: www.it315.org <
回車 >


<
回車 >

WEB 服務(wù)器接收到瀏覽器的訪問請求消息后,根據(jù) Host 頭字段中所設(shè)置的主機(jī)名,就知道該選擇哪個(gè) WEB 站點(diǎn)來進(jìn)行響應(yīng),因此,可以使用不同的主機(jī)名來作為區(qū)分同一個(gè) WEB 服務(wù)器上的不同站點(diǎn)的標(biāo)識信息。
Tomcat Server .xml 配置 文件 中有一個(gè) <Host> 元素,一個(gè) <Host> 元素用于建立一個(gè) WEB 站點(diǎn),使用多個(gè) <Host> 元素則可以建立多個(gè) WEB 站點(diǎn)。 <Host> 元素的父級元素為 <Engine> 元素,嵌套在同一個(gè) <Engine> 元素中的多個(gè) <Host> 元素的 name 屬性不能相同, <Host> 元素的 name 屬性指定 WEB 站點(diǎn)所對應(yīng)的主機(jī)名稱。 Tomcat Server.xml 配置文件中初始設(shè)置的 <Host> 元素內(nèi)容如下:
<Host appBase="webapps" …>

</Host>
<Host> 元素中的 appBase 屬性指定了一個(gè)路徑,該路徑將作為嵌套在它里面的 <Context> 元素的 docBase 屬性中設(shè)置的相對路徑的基準(zhǔn)路徑。
當(dāng) Tomcat 接收到訪問請求時(shí),將比較請求消息中的 Host 頭字段的值與 <Host> 元素的 name 屬性值,并以匹配的 <Host> 元素所創(chuàng)建的 WEB 站點(diǎn)來響應(yīng)。如果 Server.xml 文件中沒有與請求消息的 Host 頭字段匹配的 <Host> 元素, Tomcat 將以默認(rèn)的 WEB 站點(diǎn)來響應(yīng)。只要 <Engine> 元素的 defaultHost 屬性設(shè)置為嵌套在它里面的某個(gè) <Host> 元素的 name 屬性值,該 <Host> 元素所創(chuàng)建的 WEB 站點(diǎn)就成了該引擎的默認(rèn) WEB 站點(diǎn)。例如, Tomcat Server.xml 文件中的 <Engine> 元素的默認(rèn)設(shè)置如下:
<Engine defaultHost="localhost" debug="0">


<Host name="localhost" appBase="webapps" …>




</Host>


</Engine>
上面的這段配置信息說明,該引擎的默認(rèn) WEB 站點(diǎn)為嵌套在 <Engine> 元素中的 name 屬性為“ localhost ”的 <Host> 元素所創(chuàng)建的 WEB 站點(diǎn)。
在同一臺計(jì)算機(jī)上建立了多個(gè)基于主機(jī)名的虛擬主機(jī)后, WEB 瀏覽器要訪問其中的某個(gè)虛擬主機(jī)的資源時(shí),在訪問 URL 中必須采用主機(jī)名,而不能采用 IP 地址。這是因?yàn)? WEB 瀏覽器要將 URL 中的主機(jī)名部分作為 HTTP 請求消息的 Host 頭發(fā)送給 WEB 服務(wù)器,如果 URL 中的主機(jī)名部分使用的是 IP 地址,那么,瀏覽器發(fā)出的請求消息中的 Host 頭字段的值就是這個(gè) IP 地址,而在同一臺計(jì)算機(jī)上建立的多個(gè)基于主機(jī)名的虛擬主機(jī)共享同一個(gè) IP 地址,在 Host 頭字段使用 IP 地址根本就無法區(qū)分不同的站點(diǎn)。
即使在 URL 中指定的是主機(jī)名時(shí), WEB 瀏覽器還是要先獲得該主機(jī)名所對應(yīng)的 IP 地址,然后再使用這個(gè) IP 去連接 WEB 服務(wù)器。所以,在建立基于主機(jī)名的虛擬主機(jī)時(shí),除了要在 Tomcat server.xml 文件中進(jìn)行設(shè)置外,還需要在整個(gè)網(wǎng)絡(luò)系統(tǒng)中建立主機(jī)名與 IP 地址的映射關(guān)系,即必須將主機(jī)名添加到名稱解析系統(tǒng),以便 WEB 瀏覽器能夠從名稱解析系統(tǒng)中查詢出主機(jī)名所對應(yīng)的 IP 地址。建立主機(jī)名與 IP 地址的映射關(guān)系的慣用方式有兩種:一是使用客戶機(jī)本地的 Hosts 文件,二是使用 DNS(Domain Name System ,域名系統(tǒng) ) 服務(wù)器。 Hosts 文件和 DNS 的作用都是允許用戶使用“友好”的、文本格式的主機(jī)名稱,而不是數(shù)字格式的 IP 地址來訪問網(wǎng)絡(luò)中的計(jì)算機(jī)。 Hosts 文件可用于小型的 Intranet (企業(yè)內(nèi)部網(wǎng)),網(wǎng)絡(luò)中的所有計(jì)算機(jī)上都需要使用 Hosts 文件。 DNS 通常用于大型的網(wǎng)絡(luò),特別是 Internet 上對外提供服務(wù)的計(jì)算機(jī)都是通過 DNS 來建立其主機(jī)名與 IP 地址的映射關(guān)系。客戶機(jī)首先在本地的 Hosts 文件中查找主機(jī)名稱所映射的 IP 地址,如果沒有找到,再去查詢 DNS 服務(wù)器。為了簡單起見,這里僅介紹一下 Hosts 文件。對于 Windows 2000 系統(tǒng), Hosts 文件位于操作系統(tǒng)根目錄(取決操作系統(tǒng)所在的分區(qū),通常是 c:\winnt )下的 System32\Drivers\Etc 子目錄中,默認(rèn)情況下,該文件中有如下一行內(nèi)容:

127.0.0.1
localhost

這行文本的作用就是將 IP 地址( 127.0.0.1 )映射成主機(jī)名( localhost ),這也就是在 IE 瀏覽器地址欄中可以使用 localhost 訪問本地 WEB 服務(wù)器的原因。如果要增加更多的主機(jī)名與 IP 地址的映射,可以在 Hosts 文件中增加更多的行,然后參照上面這行內(nèi)容的格式在每行中填寫 IP 地址和相應(yīng)的主機(jī)名。
:動手體驗(yàn): 使用 Tomcat 建立基于主機(jī)名的虛擬主機(jī)
1 )用 UltraEdit 打開 <Tomcat 主目錄 >/conf 目錄下的 Server.xml 文件,使用“查找”菜單查找內(nèi)容為“ </Host> ”的行,緊接該行下面增加一對 <Host></Host> 標(biāo)簽。參照前面的 <Host> 標(biāo)簽的屬性設(shè)置情況,設(shè)置新增的 <Host> 標(biāo)簽的屬性,并在它里面嵌套一個(gè)設(shè)置該 WEB 站點(diǎn)根目錄的 <Context> 元素,最終的內(nèi)容如下:

<Host name="site1" debug="0" appBase="d:\VirtualHost1">


<Context path="" docBase="." debug="0"/>


</Host>

這樣,將創(chuàng)建一個(gè)新的 WEB 站點(diǎn)。上面的 <Context> 元素的 docBase 屬性值被設(shè)置為一個(gè)點(diǎn)( . ),即表示使用 <Host> 元素的 appBase 屬性中所設(shè)置的路徑作為這個(gè) <Context> 所映射的目錄。
2 )在上面新增的 <Host></Host> 標(biāo)簽對下面再增加一對 <Host></Host> 標(biāo)簽,并將它設(shè)置為如下形式:

<Host name="site2" debug="0" appBase="d:\VirtualHost2">


<Context path="" docBase="." debug="0"/>


</Host>

這又創(chuàng)建了一個(gè)新的 WEB 站點(diǎn),該站點(diǎn)的主機(jī)名稱為 site2 ,根目錄對應(yīng)的本地文件系統(tǒng)目錄為 d:\VirtualHost2
3 )在 d: 盤下創(chuàng)建名稱為 VirtualHost1 VirtualHost2 兩個(gè)目錄,并在這兩個(gè)目錄中分別創(chuàng)建一個(gè)名為 test.html 的文件,在 d:\VirtualHost1\test.html 文件中寫入如下一行內(nèi)容:

這是 d:\VirtualHost1 目錄中的test.html文件

d:\VirtualHost2\test.html 文件中寫入如下一行內(nèi)容:

這是 d:\VirtualHost2 目錄中的test.html文件

4 )保存修改后的 Server.xml 文件,重新啟動 Tomcat WEB 服務(wù)器程序。打開一個(gè)新的 命令 行窗口中,并在這個(gè)命令行窗口中執(zhí)行如下命令:
telnet 127.0.0.1 8080
接著在連接成功的 telnet 程序命令窗口中,輸入如下內(nèi)容:

GET /test.html HTTP/1.1<
回車 >


Host:<
空格 >site1< 回車 >


<
回車 >

這時(shí)在 telnet 程序窗口中可以看到, WEB 服務(wù)器返回內(nèi)容的正文部分為 d:\VirtualHost1\test.html 文件中的內(nèi)容。接著 WEB 服務(wù)器返回內(nèi)容的下邊,輸入如下內(nèi)容:

GET /test.html HTTP/1.1<
回車 >


Host:<
空格 >site2< 回車 >


<
回車 >

telnet 程序窗口中又可以看到, WEB 服務(wù)器這次返回內(nèi)容的正文部分為 d:\VirtualHost2\test.html 文件中的內(nèi)容。接著 WEB 服務(wù)器返回內(nèi)容的下邊,輸入如下內(nèi)容:

GET /test.html HTTP/1.1<
回車 >


Host:<
空格 >< 回車 >


<
回車 >

telnet 程序窗口中又可以看到, WEB 服務(wù)器這次返回內(nèi)容的正文部分為 d:\test\test.html 文件中的內(nèi)容。接著 WEB 服務(wù)器返回內(nèi)容的下邊,再次輸入如下內(nèi)容:

GET /test.html HTTP/1.1<
回車 >


Host:<
空格 >xxx< 回車 >


<
回車 >

telnet 程序窗口中又可以看到, WEB 服務(wù)器這次返回內(nèi)容的正文部分仍然為 d:\test\test.html 文件中的內(nèi)容。
上面的整個(gè)交互過程如圖 2.34 所示, Tomcat 根據(jù)第 1 次和第 2 次請求中所指定 Host 頭的值,查找 Server.xml 文件中與之相匹配的 <Host> 元素的 name 屬性值,并以匹配的 <Host> 元素所設(shè)置的 WEB 站點(diǎn)來響應(yīng);在第 3 次和第 4 次請求中所指定 Host 頭的值,在 Server.xml 文件中沒有與之對應(yīng)的 <Host> 元素的 name 屬性值, Tomcat 將以默認(rèn)的 WEB 站點(diǎn)來響應(yīng)。


tomcat配置虛擬主機(jī)
2.34

5 )在 Windows 2000 系統(tǒng)中,用記事本程序打開 c:\winnt\System32\Drivers\Etc\Hosts 文件,可以看到有如下一行內(nèi)容:

127.0.0.1
localhost

緊接這行文本的下面,用它復(fù)制出兩行文本,并將這兩行文本中的 localhost 分別修改成 site1 site2 ,這樣,就使用 Hosts 文件為當(dāng)前計(jì)算機(jī)設(shè)置了多個(gè)主機(jī)名。如果要用 site1 site2 這個(gè)兩主機(jī)名訪問其他計(jì)算機(jī)上的 WEB 站點(diǎn),則應(yīng)將 127.0.0.1 修改成其他計(jì)算機(jī)的實(shí)際 IP 地址。保存 Hosts 文件后,在命令行窗口中執(zhí)行“ ping site1 ”和“ ping site2 ”命令,查看該主機(jī)名是否被正確解析到了相應(yīng)的 IP 地址上。建立 site1 site2 與計(jì)算機(jī) IP 地址的映射后,在 IE 瀏覽器地址欄中輸入 http://localhost:8080/test.html http://site1:8080/test.html http://site2:8080/test.html ,可以看到瀏覽器將顯示出各自站點(diǎn)中的 test.html 網(wǎng)頁文件的內(nèi)容。

可見,使用主機(jī)名的方式在同一臺 WEB 服務(wù)器上創(chuàng)建多個(gè)虛擬主機(jī)后,在 WEB 瀏覽器中使用主機(jī)名訪問 Web 服務(wù)器時(shí), Web 服務(wù)器將選擇與該主機(jī)名關(guān)聯(lián)的 WEB 站點(diǎn)進(jìn)行響應(yīng)。通過這種方式,多個(gè) WEB 站點(diǎn)可以共享同一個(gè) IP 地址和相同的端口號,唯一不足的就是 WEB 瀏覽不能通過 IP 地址去訪問這些 WEB 站點(diǎn)。基于主機(jī)名的虛擬主機(jī)是目前 Internet 上的大多數(shù)虛擬主機(jī)業(yè)務(wù)提供商所通常采用的方式。只要找出幾個(gè)小型公司或個(gè)人的網(wǎng)站,如果在 WEB 瀏覽器地址欄中輸入“ http:// 主機(jī)名”可以訪問到該 WEB 站點(diǎn),接著在命令行窗口中執(zhí)行“ ping 主機(jī)名”,查看到該域名對應(yīng)的 IP 地址,然后在 WEB 瀏覽器地址欄中輸入“ http://IP 地址”時(shí),卻無法訪問這個(gè) WEB 站點(diǎn)了,那么,這個(gè) WEB 站點(diǎn)就是一個(gè)基于主機(jī)名的虛擬主機(jī),它與其他一些 WEB 站點(diǎn)共享一臺 WEB 服務(wù)器,而不是自己獨(dú)享一臺 WEB 服務(wù)器。

注意:當(dāng)使用安全套接字層 (SSL) 時(shí),不能使用主機(jī)頭字段來實(shí)現(xiàn)虛擬主機(jī),這是因?yàn)槭褂? SSL HTTP 請求有加密保護(hù)。主機(jī)頭字段是加密內(nèi)容的一部分,不能被解釋和 路由 到正確的站點(diǎn)。

tomcat配置虛擬主機(jī)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲综合一区二区三区 | 色国产在线| 狠狠色噜噜狠狠狠狠97影音先锋 | 男女一级毛片免费播放 | 中文字幕日韩精品亚洲七区 | 国产欧美一区二区三区精品 | 男人懂的网站 | 日韩在线观看视频网站 | 国产精品嫩草研究所永久网址 | 香蕉视频免费在线观看 | 亚洲狠狠网站色噜噜 | 全免费a级毛片免费看视频免 | 亚洲精品乱码国产精品乱码 | 日韩一区二区三区免费视频 | 欧美精品一区二区三区在线播放 | 久青草视频在线播放 | 国产精品视频在线免费观看 | 国产精品久久久久a影院 | 中文字幕在线影院 | 97成人精品 | 成人久久18网站 | 91精选视频 | 九九综合九九 | 国产精品蜜臀 | 99久久精品国产片 | 六月婷婷久香在线视频 | 99久久精品国产片 | 青草青青在线视频观看 | 日本一区二区三区不卡在线视频 | 国产亚洲精品热视频在线观看 | 国产午夜精品不卡观看 | 99久久精品免费精品国产 | 亚洲精品综合久久 | 欧美日韩国产亚洲一区二区三区 | 国产h视频免费观看 | 精品久久久久久久99热 | 男人的天堂222eee | 亚洲一级片在线观看 | 手机看黄av免费网址 | 精品久久久久久久久免费影院 | 亚洲欧美精品综合中文字幕 |