Host:www.it315.org<回車><回車>WEBserver接收到瀏覽器的訪問(wèn)" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

tomcat建立虛擬主機(jī)

系統(tǒng) 2334 0

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

??????? GET ?? / ?? HTTP/1.1< 回車 >

??????? Host: ?? www.it315.org< 回車 >

??????? < 回車 >

WEB server接收到瀏覽器的訪問(wèn)請(qǐng)求消息后,依據(jù) Host 頭字段中所設(shè)置的主機(jī)名,就知道該選擇哪個(gè) WEB 網(wǎng)站來(lái)進(jìn)行響應(yīng),因此,能夠使用不同的主機(jī)名來(lái)作為區(qū)分同一個(gè) WEB server上的不同網(wǎng)站的標(biāo)識(shí)信息。

Tomcat Server.xml 配置文件里有一個(gè) <Host> 元素,一個(gè) <Host> 元素用于建立一個(gè) WEB 網(wǎng)站,使用多個(gè) <Host> 元素則能夠建立多個(gè) WEB 網(wǎng)站。 <Host> 元素的父級(jí)的元素中為 <Engine> 元素,嵌套在同一個(gè) <Engine> 元素中的多個(gè) <Host> 元素的 name 屬性不能同樣, <Host> 元素的 name 屬性指定 WEB 網(wǎng)站所相應(yīng)的主機(jī)名稱。 Tomcat Server.xml 配置文件里初始設(shè)置的 <Host> 元素內(nèi)容例如以下:

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

</Host>

<Host> 元素中的 appBase 屬性指定了一個(gè)路徑,該路徑將作為嵌套在它里面的 <Context> 元素的 docBase 屬性中設(shè)置的相對(duì)路徑的基準(zhǔn)路徑。

當(dāng) Tomcat 接收到訪問(wèn)請(qǐng)求時(shí),將比較請(qǐng)求消息中的 Host 頭字段的值與 <Host> 元素的 name 屬性值,并以匹配的 <Host> 元素所創(chuàng)建的 WEB 網(wǎng)站來(lái)響應(yīng)。假設(shè) Server.xml 文件里沒(méi)有與請(qǐng)求消息的 Host 頭字段匹配的 <Host> 元素, Tomcat 將以默認(rèn)的 WEB 網(wǎng)站來(lái)響應(yīng)。僅僅要 <Engine> 元素的 defaultHost 屬性設(shè)置為嵌套在它里面的某個(gè) <Host> 元素的 name 屬性值,該 <Host> 元素所創(chuàng)建的 WEB 網(wǎng)站就成了該引擎的默認(rèn) WEB 網(wǎng)站。比如, Tomcat Server.xml 文件里的 <Engine> 元素的默認(rèn)設(shè)置例如以下:

<Engine name="Standalone" defaultHost="localhost" debug="0">

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

???????

??????? </Host>

</Engine>

上面的這段配置信息說(shuō)明,該引擎的默認(rèn) WEB 網(wǎng)站為嵌套在 <Engine> 元素中的 name 屬性為“ localhost ”的 <Host> 元素所創(chuàng)建的 WEB 網(wǎng)站。

在同一臺(tái)計(jì)算機(jī)上建立了多個(gè)基于主機(jī)名的虛擬主機(jī)后, WEB 瀏覽器要訪問(wèn)當(dāng)中的某個(gè)虛擬主機(jī)的資源時(shí),在訪問(wèn) URL 中必須採(cǎi)用主機(jī)名,而不能採(cǎi)用 IP 地址。這是由于 WEB 瀏覽器要將 URL 中的主機(jī)名部分作為 HTTP 請(qǐng)求消息的 Host 頭發(fā)送給 WEB server,假設(shè) URL 中的主機(jī)名部分使用的是 IP 地址,那么,瀏覽器發(fā)出的請(qǐng)求消息中的 Host 頭字段的值就是這個(gè) IP 地址,而在同一臺(tái)計(jì)算機(jī)上建立的多個(gè)基于主機(jī)名的虛擬主機(jī)共享同一個(gè) IP 地址,在 Host 頭字段使用 IP 地址根本就無(wú)法區(qū)分不同的網(wǎng)站。

即使在 URL 中指定的是主機(jī)名時(shí), WEB 瀏覽器還是要先獲得該主機(jī)名所相應(yīng)的 IP 地址,然后再使用這個(gè) IP 去連接 WEB server。所以,在建立基于主機(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) ) server。 Hosts 文件和 DNS 的作用都是同意用戶使用“友好”的、文本格式的主機(jī)名稱,而不是數(shù)字格式的 IP 地址來(lái)訪問(wèn)網(wǎng)絡(luò)中的計(jì)算機(jī)。 Hosts 文件可用于小型的 Intranet (企業(yè)內(nèi)部網(wǎng)),網(wǎng)絡(luò)中的全部計(jì)算機(jī)上都須要使用 Hosts 文件。 DNS 通經(jīng)常使用于大型的網(wǎng)絡(luò),特別是 Internet 上對(duì)外提供服務(wù)的計(jì)算機(jī)都是通過(guò) DNS 來(lái)建立其主機(jī)名與 IP 地址的映射關(guān)系。客戶機(jī)首先在本地的 Hosts 文件里查找主機(jī)名稱所映射的 IP 地址,假設(shè)沒(méi)有找到,再去查詢 DNS server。為了簡(jiǎn)單起見(jiàn),這里僅介紹一下 Hosts 文件。對(duì)于 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 訪問(wèn)本地 WEB server的原因。假設(shè)要添加很多其它的主機(jī)名與 IP 地址的映射,能夠在 Hosts 文件里添加很多其它的行,然后參照上面這行內(nèi)容的格式在每行中填寫 IP 地址和對(duì)應(yīng)的主機(jī)名。

(1)用UltraEdit打開(kāi)<Tomcat 主文件夾>/conf文件夾下的Server.xml文件,使用“查找”菜單查找內(nèi)容為“</Host>”的行,緊接該行以下添加一對(duì) <Host></Host>標(biāo)簽。參照前面的<Host>標(biāo)簽的屬性設(shè)置情況,設(shè)置新增的<Host> 標(biāo)簽的屬性,并在它里面嵌套一個(gè)設(shè)置該WEB網(wǎng)站根文件夾的<Context>元素,終于的內(nèi)容例如以下:
??????? <Host name="site1" debug="0" appBase="d:/VirtualHost1">
?????????????? <Context path="" docBase="." debug="0"/>
??????? </Host>
這樣,將創(chuàng)建一個(gè)新的WEB網(wǎng)站。上面的<Context>元素的docBase屬性值被設(shè)置為一個(gè)點(diǎn)(.),即表示使用<Host>元素的appBase屬性中所設(shè)置的路徑作為這個(gè)<Context>所映射的文件夾。
(2)在上面新增的<Host></Host>標(biāo)簽對(duì)以下再添加一對(duì)<Host></Host>標(biāo)簽,并將它設(shè)置為例如以下形式:
??????? <Host name="site2" debug="0" appBase="d:/VirtualHost2">
?????????????? <Context path="" docBase="." debug="0"/>
??????? </Host>
這又創(chuàng)建了一個(gè)新的WEB網(wǎng)站,該網(wǎng)站的主機(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)保存改動(dòng)后的Server.xml文件,又一次啟動(dòng)Tomcat WEBserver程序。打開(kāi)一個(gè)新的命令行窗體中,并在這個(gè)命令行窗體中運(yùn)行例如以下命令:
telnet 127.0.0.1 8080
接著在連接成功的telnet程序命令窗體中,輸入例如以下內(nèi)容:
??????? GET /test.html HTTP/1.1< 回車>
??????? Host:< 空格>site1<回車>
??????? < 回車>
這時(shí)在telnet程序窗體中能夠看到,WEBserver返回內(nèi)容的正文部分為d:/VirtualHost1/test.html文件里的內(nèi)容。接著WEBserver返回內(nèi)容的下邊,輸入例如以下內(nèi)容:
??????? GET /test.html HTTP/1.1< 回車>
??????? Host:< 空格>site2<回車>
??????? < 回車>
在telnet程序窗體中又能夠看到,WEBserver這次返回內(nèi)容的正文部分為d:/VirtualHost2/test.html文件里的內(nèi)容。接著WEBserver返回內(nèi)容的下邊,輸入例如以下內(nèi)容:
??????? GET /test.html HTTP/1.1< 回車>
??????? Host:< 空格><回車>
??????? < 回車>
在telnet程序窗體中又能夠看到,WEBserver這次返回內(nèi)容的正文部分為d:/test/test.html文件里的內(nèi)容。接著WEBserver返回內(nèi)容的下邊,再次輸入例如以下內(nèi)容:
??????? GET /test.html HTTP/1.1< 回車>
??????? Host:< 空格>xxx<回車>
??????? < 回車>
在telnet程序窗體中又能夠看到,WEBserver這次返回內(nèi)容的正文部分仍然為d:/test/test.html文件里的內(nèi)容。
上面的整個(gè)交互過(guò)程如圖2.34所看到的,Tomcat根 據(jù)第1次和第2次請(qǐng)求中所指定Host頭的值,查找Server.xml文件里與之相匹配的<Host>元素的name屬性值,并以匹配的 <Host>元素所設(shè)置的WEB網(wǎng)站來(lái)響應(yīng);在第3次和第4次請(qǐng)求中所指定Host頭的值,在Server.xml文件里沒(méi)有與之相應(yīng)的 <Host>元素的name屬性值,Tomcat將以默認(rèn)的WEB網(wǎng)站來(lái)響應(yīng)。 tomcat建立虛擬主機(jī)
圖2.34
(5)在Windows 2000系統(tǒng)中,用記事本程序打開(kāi)c:/winnt/System32/Drivers/Etc/Hosts文件,能夠看到有例如以下一行內(nèi)容:
??????? 127.0.0.1??????? localhost
緊接這行文本的以下,用它復(fù)制出兩行文本,并將這兩行文本中的localhost分別改動(dòng)成site1和 site2,這樣,就使用Hosts文件為當(dāng)前計(jì)算機(jī)設(shè)置了多個(gè)主機(jī)名。假設(shè)要用site1和site2這個(gè)兩主機(jī)名訪問(wèn)其它計(jì)算機(jī)上的WEB網(wǎng)站,則應(yīng) 將127.0.0.1改動(dòng)成其它計(jì)算機(jī)的實(shí)際IP地址。保存Hosts文件后,在命令行窗體中運(yùn)行“ping site1 和“ping site2 命令,查看該主機(jī)名是否被正確解析到了對(duì)應(yīng)的IP 地 址上。建立site1和site2與計(jì)算機(jī)IP地址的映射后,在IE瀏覽器地址欄中輸入http://localhost: 8080/test.html、http://site1:8080/test.html和http://site2:8080/test.html,可 以看到瀏覽器將顯示出各自網(wǎng)站中的test.html網(wǎng)頁(yè)文件的內(nèi)容。
可見(jiàn),使用主機(jī)名的方式在同一臺(tái)WEBserver上創(chuàng)建多 個(gè)虛擬主機(jī)后,在WEB瀏覽器中使用主機(jī)名訪問(wèn)Webserver時(shí),Webserver將選擇與該主機(jī)名關(guān)聯(lián)的WEB網(wǎng)站進(jìn)行響應(yīng)。通過(guò)這樣的方式,多個(gè)WEB網(wǎng)站可 以共享同一個(gè)IP地址和同樣的port號(hào),唯一不足的就是WEB瀏覽不能通過(guò)IP地址去訪問(wèn)這些WEB網(wǎng)站。基于主機(jī)名的虛擬主機(jī)是眼下Internet上的 大多數(shù)虛擬主機(jī)業(yè)務(wù)提供商所通常採(cǎi)用的方式。僅僅要找出幾個(gè)小型公司或個(gè)人的網(wǎng)站,假設(shè)在WEB瀏覽器地址欄中輸入“http://主機(jī)名”能夠訪問(wèn)到該 WEB網(wǎng)站,接著在命令行窗體中運(yùn)行“ping 主機(jī)名”,查看到該域名相應(yīng)的IP地址,然后在WEB瀏覽器地址欄中輸入“http://IP地址”時(shí),卻無(wú)法訪問(wèn)這個(gè)WEB網(wǎng)站了,那么,這個(gè)WEB站 點(diǎn)就是一個(gè)基于主機(jī)名的虛擬主機(jī),它與其它一些WEB網(wǎng)站共享一臺(tái)WEBserver,而不是自己獨(dú)享一臺(tái)WEBserver。
注意 :當(dāng)使用安全套接字層 (SSL) 時(shí),不能使用主機(jī)頭字段來(lái)實(shí)現(xiàn)虛擬主機(jī),這是由于使用SSL的HTTP請(qǐng)求有加密保護(hù)。主機(jī)頭字段是加密內(nèi)容的一部分,不能被解釋和路由到正確的網(wǎng)站。

tomcat建立虛擬主機(jī)


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 五华县| 靖边县| 迁安市| 芜湖县| 广平县| 团风县| 称多县| 繁峙县| 苏尼特左旗| 海门市| 房产| 施甸县| 临颍县| 遂昌县| 观塘区| 枣庄市| 肥东县| 微山县| 仪陇县| 肇州县| 大新县| 墨玉县| 阳泉市| 怀宁县| 桦川县| 博客| 武功县| 虎林市| 化隆| 巴林左旗| 固镇县| 景东| 环江| 安康市| 万宁市| 崇文区| 都昌县| 镇坪县| 静乐县| 浏阳市| 壶关县|