卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Apache的配置

Apache 下的虛擬主機(jī)設(shè)置摘要:本文介紹了WWW 服務(wù)器的虛擬主機(jī)的工作原理,討論了在Apache WWW服務(wù)器下的各種虛擬主機(jī)、尤其是大規(guī)模虛擬主機(jī)的設(shè)置技術(shù),并比較了各種方式的特點(diǎn)。關(guān)鍵詞:A

Apache 下的虛擬主機(jī)設(shè)置

摘要:本文介紹了WWW 服務(wù)器的虛擬主機(jī)的工作原理,討論了在Apache WWW服務(wù)器下的各種虛擬主機(jī)、尤其是大規(guī)模虛擬主機(jī)的設(shè)置技術(shù),并比較了各種方式的特點(diǎn)。

關(guān)鍵詞:Apache WWW Virtual Hosting 虛擬主機(jī)

一、WWW 服務(wù)器虛擬主機(jī)原理

WWW 服務(wù)器虛擬主機(jī)是指使用一臺(tái)物理機(jī)器,充當(dāng)多個(gè)主機(jī)名的WWW 服務(wù)器。比如由一臺(tái)機(jī)器同時(shí)提供http://www.company1.com, http://www.company2.com 等的WWW 服務(wù),而瀏覽這些WWW 站點(diǎn)的用戶感覺(jué)不到這種方式下跟由不同的機(jī)器提供不同的服務(wù)有什么差別。

使用WWW 虛擬主機(jī)的好處在于,一些小規(guī)模的網(wǎng)站,通過(guò)跟其他網(wǎng)站共享同一臺(tái)物理機(jī)器,可以減少系統(tǒng)的運(yùn)行成本,并且可以減少管理的難度。另外,對(duì)于個(gè)人用戶,也可以使用這種虛擬主機(jī)方式來(lái)建立有自己獨(dú)立域名的WWW 服務(wù)器,目前國(guó)內(nèi)有很多公司都提供這種免費(fèi)的服務(wù)。

WWW 虛擬主機(jī)有兩種工作方式:

1.1 基于IP 地址的虛擬主機(jī)方式

這種方式下,不同的主機(jī)名解析到不同的IP 地址,提供虛擬主機(jī)服務(wù)的機(jī)器上同時(shí)設(shè)置有這些IP 地址。服務(wù)器根據(jù)用戶請(qǐng)求的目的IP 地址來(lái)判定用戶請(qǐng)求的是哪個(gè)虛擬主機(jī)的服務(wù),從而進(jìn)一步的處理。

缺點(diǎn):基于IP 地址的虛擬主機(jī)方式需要在提供? 檳庵骰 竦幕 魃仙枇⒍喔鯥P 地址,既浪費(fèi)了IP 地址,又限制了一臺(tái)機(jī)器所能容納的虛擬主機(jī)數(shù)目。因此這種方式越來(lái)越少使用。但是,這種方式是早期使用的HTTP 1.0協(xié)議唯一支持的虛擬主機(jī)方式。

1.2 基于主機(jī)名的虛擬主機(jī)方式

由于基于IP 地址的虛擬主機(jī)方式有如上的缺點(diǎn),HTTP 1.1協(xié)議中增加了對(duì)基于主機(jī)名的虛擬主機(jī)的支持。具體說(shuō),當(dāng)客戶程序向WWW 服務(wù)器發(fā)出請(qǐng)求時(shí),客戶想要訪問(wèn)的主機(jī)名也通過(guò)請(qǐng)求頭中的“Host:”語(yǔ)句傳遞給WWW 服務(wù)器。比如,www.company1.com , www.company2.com 都對(duì)應(yīng)于同一個(gè)IP 地址(即由同一臺(tái)機(jī)器來(lái)給這兩個(gè)虛擬域名提供服務(wù)),客戶程序要存取http://www.company1.com/index.html時(shí),發(fā)出的請(qǐng)求頭中包含有如下的內(nèi)容:

,

GET /index.html HTTP/1.1

Host: www.company1.com

…..

WWW 服務(wù)器程序接收到這個(gè)請(qǐng)求后,可以通過(guò)檢查“Host:”語(yǔ)句,來(lái)判定客戶程序請(qǐng)求是哪個(gè)虛擬主機(jī)的服務(wù),然后再進(jìn)一步的處理。

優(yōu)點(diǎn):提供虛擬主機(jī)服務(wù)的機(jī)器上只要設(shè)置一個(gè)IP 地址,理論上就可以給無(wú)數(shù)多個(gè)虛擬域名提供服務(wù),占用資源少,管理方便。目前基本上都是使用這種方式來(lái)提供虛擬主機(jī)服務(wù)。

缺點(diǎn):在早期的HTTP 1.0版本下不能使用。實(shí)際上現(xiàn)在使用的瀏覽器基本上都支持基于主機(jī)名的虛擬主機(jī)方式。

二、Apache 服務(wù)器下的虛擬主機(jī)設(shè)置技術(shù)

2.1 Apache WWW服務(wù)器簡(jiǎn)介

Apache WWW 服務(wù)器是目前Internet 上使用最廣的WWW 服務(wù)器軟件。通過(guò)靈活的配置,它可以完成幾乎您想得到的功能。本文主要介紹在Apache 下設(shè)置各種虛擬主機(jī)的方法。

2.2 Apache WWW服務(wù)器下基于IP 地址的虛擬主機(jī)設(shè)置

使用這種虛擬主機(jī)方式,首先要在服務(wù)器上為每個(gè)虛擬主機(jī)單獨(dú)設(shè)置一個(gè)IP 地址。這些IP 地址可以通過(guò)增加多個(gè)網(wǎng)卡或者在一個(gè)網(wǎng)卡上設(shè)立多個(gè)IP 地址來(lái)完成。有了多個(gè)IP 地址后,可以采用以下兩種方式之一來(lái)設(shè)置Apache :

2.2.1 為每個(gè)虛擬主機(jī)運(yùn)行一份Apache

采用這種方式,每一份Apache 程序可以以單獨(dú)的用戶運(yùn)行,因此各個(gè)虛擬主機(jī)之間互不影響。設(shè)置這種虛擬主機(jī)時(shí),只要為每一份Apache 設(shè)置一套配置文件就可以了,唯一需要注意的是:必須使用“Listen”語(yǔ)句,強(qiáng)制每一份Apache 僅僅在屬于“自己”的IP 地址上接收服務(wù)請(qǐng)求。

優(yōu)點(diǎn):各個(gè)虛擬主機(jī)之間互不干擾,安全性高。

缺點(diǎn):占用系統(tǒng)資源較多。

2.2.2多個(gè)虛擬主機(jī)共享同一份Apache

采用這種方式,各個(gè)虛擬主機(jī)共享同一份Apache ,因此各個(gè)虛擬主機(jī)之間有一定的影響,尤其是執(zhí)行CGI 程序時(shí),可能會(huì)帶來(lái)一些嚴(yán)重的安全問(wèn)題。設(shè)置這種虛擬主機(jī)時(shí),只要為每一個(gè)虛擬主機(jī)設(shè)置類(lèi)似如下的信息即可

,

DocumentRoot /home/company1

優(yōu)點(diǎn):占用系統(tǒng)資源比上一種方式少。

缺點(diǎn):安全性低,每個(gè)虛擬主機(jī)仍然需要占用一個(gè)IP 地址。

2.3 Apache WWW服務(wù)器下簡(jiǎn)單的基于名字的虛擬主機(jī)設(shè)置

這種方式下,各個(gè)虛擬主機(jī)共享同一份Apache ,因此有CGI 程序運(yùn)行時(shí),安全性也不高。設(shè)置這種虛擬主機(jī)時(shí),只要為每一個(gè)虛擬主機(jī)設(shè)置類(lèi)似如下的信息即可

NameVirtualHost 111.222.33.44 ; 在這個(gè)IP 地址接收虛擬主機(jī)的服務(wù)

ServerName www.company1.com

DocumentRoot /www/company1

ServerName www.company2.com

DocumentRoot /www/company2

優(yōu)點(diǎn):只要一個(gè)IP 地址就可以提供大量的虛擬主機(jī)服務(wù)。

缺點(diǎn):安全性差。維護(hù)這些虛擬主機(jī)時(shí)需要更改配置文件,并且需要重新啟動(dòng)Apache 進(jìn)程才能起作用。因此不適合進(jìn)行大規(guī)模的虛擬主機(jī)服務(wù)。

2.4 Apache WWW服務(wù)器下基于名字的大規(guī)模虛擬主機(jī)設(shè)置

所謂大規(guī)模虛擬主機(jī),是指能夠提供非常多的虛擬主機(jī)服務(wù),比如能提供超過(guò)數(shù)十萬(wàn)個(gè)域名

,

的虛擬主機(jī)服務(wù)。如果使用以上討論的方法,是很難完成的。實(shí)現(xiàn)這種服務(wù)的一種方式是利用Apache 功能強(qiáng)大的URL 重寫(xiě)功能。下面以一個(gè)實(shí)例來(lái)說(shuō)明這種方式。

2.4.1 Apache中URL 重寫(xiě)功能

Apache 1.2及以后版本都有URL 重寫(xiě)(Rewrite )功能。簡(jiǎn)單的說(shuō),URL 重寫(xiě)功能就是在Apache 接收到請(qǐng)求后,在處理的過(guò)程中能根據(jù)預(yù)先設(shè)定的規(guī)則,對(duì)請(qǐng)求中的URL 進(jìn)行修改。這些規(guī)則主要由正規(guī)表達(dá)式組成。重寫(xiě)依賴于輸入的URL 、各種服務(wù)器端環(huán)境變量、HTTP 請(qǐng)求頭中的內(nèi)容、時(shí)間,甚至可以通過(guò)外部的? 絳蚶詞褂檬 菘庵械男畔⒗窗鎦 匭礎(chǔ)?

URL 重寫(xiě)功能非常強(qiáng)大,通過(guò)URL 重寫(xiě),可以使Apache 完成異常復(fù)雜的功能。當(dāng)然,URL 重寫(xiě)功能本身也比較復(fù)雜,關(guān)于URL 重寫(xiě)功能的詳細(xì)說(shuō)明可以參看Apache 的隨機(jī)文檔。

2.4.2 使用Apache 中URL 重寫(xiě)功能實(shí)現(xiàn)基于名字的大規(guī)模虛擬主機(jī)設(shè)置

假設(shè)機(jī)器www.home.com 提供名字形如abcde.home.com 、hijk.home.com 等的大規(guī)模虛擬主機(jī)服務(wù)。其中虛擬主機(jī)名必須是字母或數(shù)字,并且長(zhǎng)度至少為3。為了防止一個(gè)目錄下文件或子目錄太多而對(duì)性能產(chǎn)生很大的負(fù)面影響,對(duì)用戶的目錄按照名字進(jìn)行分級(jí)劃分,如虛擬主機(jī)abcde.home.com 的相關(guān)文件存放在目錄/member/ab/de/abcde下面。其中“ab”、“de”分別是“abcde”的前邊兩個(gè)字符和最后兩個(gè)字符。當(dāng)用戶請(qǐng)求http://abcde.home.com時(shí),系統(tǒng)應(yīng)該返回/member/ab/de/abcde下面的文件。下面是為了完成這種功能需要進(jìn)行的設(shè)置:

1. 對(duì)域名服務(wù)器的設(shè)置

假設(shè)www.home.com 的IP 地址為202.103.190.57,在域名服務(wù)器DNS 的home.com 數(shù)據(jù)文件中增加一行:

--------------------------------------------------------------------------------

* IN A 202.103.190.57

--------------------------------------------------------------------------------

這樣,所有 *.home.com的IP 地址都會(huì)被解析為202.103.190.57,就沒(méi)有必要為各個(gè)虛擬主機(jī)分別進(jìn)行設(shè)置。

2. 對(duì)Apache 的設(shè)置

首先使用命令“httpd -l”檢查mod_rewrite模塊是否已經(jīng)編譯到Apache 中,如果沒(méi)有,重新編譯Apache 。

然后在Apache 的配置文件httpd.conf 中增加如下語(yǔ)句(其中以“#”開(kāi)頭的為注釋?zhuān)?/p>

--------------------------------------------------------------------------------

,

#禁止使用機(jī)器的正式名

UseCanonicalName off

#使能重寫(xiě)功能

RewriteEngine on

RewriteMap lowercase int:tolower

# 為安全考慮,對(duì)CGI 程序不進(jìn)行重寫(xiě)

RewriteCond {REQUEST_URI} !^/cgi-bin/

# 對(duì)www.home.com 不重寫(xiě),其他的重寫(xiě)

RewriteCond ${lowercase:{HTTP_HOST}} !^www.home.com(.*)$

RewriteCond ${lowercase:{HTTP_HOST}} ^[a-z0-9-] .home.com(.*)$

# 首先把機(jī)器名改為小寫(xiě),添加到請(qǐng)求的文件路徑前,并繼續(xù)處理

RewriteRule ^(. ) ${lowercase:{HTTP_HOST}}$1 [C]

# 重寫(xiě)請(qǐng)求

RewriteRule ^([a-z0-9])([a-z0-9])([a-z0-9]).home.com([.]*)/(.*) /member/$1$2/$2$3/$1$2$3/$5

---------------------------------------------------------------------------------

優(yōu)點(diǎn):只要一個(gè)IP 地址就可以提供大量的虛擬主機(jī)服務(wù),維護(hù)方便。

缺點(diǎn):安全性低。上例為了增強(qiáng)安全性,禁止運(yùn)行用戶自己的CGI 程序。

2.5 Apache WWW服務(wù)器下的重定向虛擬主機(jī)設(shè)置

重定向虛擬主機(jī)是指僅僅提供重定向功能,而不實(shí)際存放用戶主頁(yè)數(shù)據(jù)的虛擬主機(jī)。比如,某站點(diǎn)有多個(gè)鏡像服務(wù)器,假設(shè)為www1.user.com 、www2.user.com ,…wwwn.user.com。這些服務(wù)器放在不同的網(wǎng)絡(luò)上,分布于各地的客戶訪問(wèn)這些服務(wù)器的速度也互不相同。而站點(diǎn)www.home.com 通過(guò)虛擬域名user.home.com 為這些鏡像的服務(wù)器提供虛擬主機(jī)服務(wù)。當(dāng)客戶訪 RewriteRule ^([a-z0-9])([a-z0-9])([a-z0-9]*)([a-z0-9])([a-z0-9]).home.com([.]*)/(.*) /member/$1$2/$4$5/$1$2$3$4$5/$7

,

問(wèn)http://user.home.com時(shí),www.home.com 根據(jù)用戶的IP 地址、收集到的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息,把客戶重定向到對(duì)該客戶來(lái)說(shuō)訪問(wèn)速度最快的站點(diǎn)。

重定向虛擬主機(jī)服務(wù)也可以通過(guò)使用URL 重寫(xiě)功能來(lái)完成。這里僅給出簡(jiǎn)單的重寫(xiě)規(guī)則:

------------------------------------------------------------------------------------

------------------------------------------------------------------------------------

其中,nph-redirect.cgi 為一個(gè)CGI 程序,為了實(shí)現(xiàn)自動(dòng)重定向,它需要產(chǎn)生完整的HTTP 應(yīng)答頭信息。該程序通過(guò)環(huán)境變量PATH_INFO得到用戶請(qǐng)求的URL ,通過(guò)環(huán)境變量REMOTE_ADDR得到用戶的IP 地址,并根據(jù)網(wǎng)絡(luò)拓?fù)淝闆r生成重定向信息,返回給客戶。

參考文獻(xiàn):

1.Apache 1.3 User's Guide http://www.apache.org

Virtual Hosting Setup Using Apache

Abstract:

There are two types of WWW Virtual Hosting, IP-based and Name-based. Those two types are introduced in this thesis, followed by some methods about WWW Virtual Hosting configuration under Apache and the difference between them is analyzed RewriteRule ^([a-z0-9] ).home.com([.]*)/(.*) /www/cgi-bin/nph-redirect.cgi/$1/$3 [T=application/x-httpd-cgi,L]

標(biāo)簽: