Linux下虛擬域名的實(shí)現(xiàn)(2)
更新時(shí)間:2006年10月24日 00:00:00 作者:
目前Linux操作系統(tǒng)十分火爆,所以很多朋友希望了解一下Linux下虛擬域名的實(shí)現(xiàn)過(guò)程。下面就基于目前比較流行的RedHat來(lái)討論一下。 二、Apache服務(wù)器的配置
Apache服務(wù)器是目前互聯(lián)網(wǎng)上使用最多的Web服務(wù)器,它可以維護(hù)非常繁忙的站點(diǎn)。RedHat 6.0捆綁了Apache Web Server 1.3。它的配置文件位于"/etc/httpd/conf"目錄下,有httpd.conf、srm.conf、access.conf,下面討論一下與虛擬域名有關(guān)的配置:
1、靜態(tài)配置
修改配置文件 httpd.conf 的步驟:
(1) 首先設(shè)置UseCanonicalName為off。它指示用服務(wù)器Host:header的內(nèi)容代替ServerName 的值來(lái)提供給環(huán)境變量SERVER_NAME。
(2) 然后加入:
NameVirtualHost xxx.xxx.xxx.xxx其中xxx.xxx.xxx.xxx為所要配置的虛擬服務(wù)器的IP地址。在此可配置多個(gè)虛擬IP地址,當(dāng)然要與DNS服務(wù)器中的配置一致。(注意:這里要用IP地址,不能用域名。)
(3) 接下來(lái)為每個(gè)虛擬域名加入一段記錄:
< virtualhost xxx.xxx.xxx.xxx>
.....
< /virtualhost>
xxx.xxx.xxx.xxx要和NameVirtualHost配置的IP地址一致。在兩個(gè)標(biāo)志之間可加入的配置參數(shù)有:
ServerName后面跟你要增加的虛擬域名,如aaa.domain.com ;
Documentroot如果你映射到本機(jī)的路徑就加在后面,如"/home/aaa" ;
redirect如果你映射到遠(yuǎn)端的URL可加在后面,有兩個(gè)參數(shù),第一個(gè)是虛擬域名的相對(duì)路徑,第二個(gè)是遠(yuǎn)端站點(diǎn)的URL;
ServerAlias后可加入本域名的別名,可使用通配符,如*.aaa.domain.com 。
下面舉兩個(gè)例子:
例3、映射到本機(jī)的物理路徑:
< virtualhost xxx.xxx.xxx.xxx>
DocumentRoot "/home/test"
ServerName test.domain.com
< virtualhost> 例4、映射到遠(yuǎn)端的URL:
< virtualhost xxx.xxx.xxx.xxx>
ServerName test1.doamin.com
redirect / http://test.domain1.com/welcome.htm
< /virtualhost>
還有一些參數(shù),象log文件的位置、超時(shí)的設(shè)置、緩沖區(qū)的設(shè)置等等,在此不一一介紹,可以參考Apache服務(wù)器的在線幫助文件。配置好httpd.conf文件后需要重新啟動(dòng)Apache的后臺(tái)守護(hù)進(jìn)程httpd,
[root@domain /root]# /etc/rc.d/init.d/httpd restart
每增加一個(gè)虛擬域名就要增加一段位于 < VirtualHost...>...< /VirtualHost> 之間的配置代碼,而且只有在重新啟動(dòng) httpd 后新配置才能生效。
2、動(dòng)態(tài)配置
可以發(fā)現(xiàn),如果要配置大量的虛擬域名將大大增加配置文件的長(zhǎng)度,這樣還會(huì)使Apache啟動(dòng)變慢,占用更多的內(nèi)存,而且也不容易實(shí)現(xiàn)在線申請(qǐng)??梢酝ㄟ^(guò)選擇動(dòng)態(tài)方式來(lái)配置。這樣不必事先寫(xiě)好配置,而是通過(guò)編寫(xiě)一定的動(dòng)態(tài)規(guī)則來(lái)自動(dòng)生成或隨時(shí)從獨(dú)立的配置文件中讀取信息。
Apache有一個(gè)強(qiáng)大的擴(kuò)展功能,即模塊(Modules)的特性。模塊可對(duì)服務(wù)器的功能進(jìn)行擴(kuò)充,它在運(yùn)行和使用時(shí)才裝入服務(wù)器,這樣比一直放入服務(wù)器中要節(jié)省內(nèi)存空間,同時(shí)也比調(diào)用外部CGI程序速度快。
現(xiàn)在使用一個(gè)功能強(qiáng)大的模塊來(lái)實(shí)現(xiàn)動(dòng)態(tài)配置虛擬域名,這就是mod_rewrite。它負(fù)責(zé)偵聽(tīng)從客戶機(jī)送出的URL地址,并基于一組規(guī)則表達(dá)式對(duì)該URL來(lái)進(jìn)行重寫(xiě)。這類似于URL別名概念,但它更進(jìn)了一步,輸出的URL可以映射到其他主機(jī)的任何URL地址上。 修改配置文件httpd.conf的步驟:
(1) 先設(shè)置UseCanonicalName為off 。
(2) 使用RewriteEngine on打開(kāi)rewrite引擎。用RewriteMap設(shè)定配置文件的位置和屬性,用RewriteCond和RewriteRule制定相應(yīng)的規(guī)則。
例5、httpd.conf 文件中相關(guān)配置的一個(gè)例子:
RewriteEngine on
RewriteMap lowercase int:tolower
# 定義獨(dú)立的配置文件的位置
RewriteMap vhost dbm:/www/conf/vhostdbm
# 利用獨(dú)立的配置文件重映射虛擬域名
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/docs/$1
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1
這里的 vhostdbm 文件格式見(jiàn)"CGI 程序的編制" 。 (出處:PConline)
您可能感興趣的文章:
- apache 二級(jí)域名解析 (window與linux)
- linux apache泛域名解析及dns相關(guān)
- 阿里云Linux系統(tǒng)Nginx配置多個(gè)域名的方法詳解
- Linux下虛擬域名的實(shí)現(xiàn)(1)
- Linux下虛擬域名的實(shí)現(xiàn)(3)
- springboot+nginx+https+linux實(shí)現(xiàn)負(fù)載均衡加域名訪問(wèn)簡(jiǎn)單測(cè)試
- linux apache下虛擬主機(jī)配置方法
- CentOS(Linux)下的apache服務(wù)器配置與管理方法分享
- linux下apache、mysql、php安裝配置詳細(xì)筆記
- Linux下PHP+MYSQL+APACHE配置過(guò)程 (摘)
- Linux環(huán)境下Apache服務(wù)器配置二級(jí)域名的方法詳解
相關(guān)文章
linux學(xué)習(xí)筆記 linux目錄架構(gòu)
linux學(xué)習(xí)筆記 linux目錄架構(gòu)...2007-11-11linux入門(mén)教程1 系統(tǒng)簡(jiǎn)介
linux入門(mén)教程1 系統(tǒng)簡(jiǎn)介...2006-10-10Linux CentOS MySQL 5.7.18 5.7.X安裝教程
這篇文章主要介紹了Linux CentOS MySQL 5.7.18 5.7.X安裝教程,需要的朋友可以參考下2017-04-04