大容量虛擬主機的動態配置
發表于:2007-05-25來源:作者:點擊數:
標簽:
方法一:[color=red:d86f47f91f]簡單的動態虛擬主機[/color:d86f47f91f] [code:1:d86f47f91f]這是httpd.conf文件中,完成虛擬主機的配置方法,這里采用了mod_vhost_alias。 #從Host頭中取得 服務器 名字ServerName UseCanonicalNameOff #這里的日志格式,可以
方法一:[color=red:d86f47f91f]簡單的動態虛擬主機[/color:d86f47f91f]
[code:1:d86f47f91f]這是 httpd.conf 文件中,完成虛擬主機的配置方法,這里采用了 mod_vhost_alias 。
# 從 Host: 頭中取得
服務器名字 Server Name
UseCanonicalName Off
# 這里的日志格式,可以在將來通過第一個參數域來分隔不同的虛擬主機的日志
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/a
clearcase/" target="_blank" >ccess_log vcommon
# 在返回請求的文件名的路徑中包含進服務器名字: server name
VirtualDocumentRoot /虛擬主機空間根目錄/%0/htdocs
VirtualScriptAlias /虛擬主機空間根目錄/%0/cgi-bin
#需要首先建立 /%0/htdocs ,然后把文件放在htdocs才可以訪問
#%0表示虛擬主機的Server Name的這個名字,例如www.net.cn
將 UseCanonicalName Off 的配置改為 UseCanonicalName DNS 即可實現基于 IP 地址的虛擬主機。而在文件路徑中所要插入的服務器名字(server name) 則通過虛擬主機的 IP 地址解析而得。[/code:1:d86f47f91f]
方法二:[color=red:d86f47f91f]多個的動態虛擬主機[/color:d86f47f91f]
[code:1:d86f47f91f]UseCanonicalName Off
LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
<Directory /www/commercial>
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /www/homepages>
Options FollowSymLinks
AllowOverride None
</Directory>
<VirtualHost 111.22.33.44>
ServerName www.commercial.isp.com
CustomLog logs/access_log.commercial vcommon
VirtualDocumentRoot /www/commercial/%0/docs
VirtualScriptAlias /www/commercial/%0/cgi-bin
</VirtualHost>
<VirtualHost 111.22.33.45>
ServerName www.homepages.isp.com
CustomLog logs/access_log.homepages vcommon
VirtualDocumentRoot /虛擬主機空間根目錄/%0/htdocs
VirtualScriptAlias /虛擬主機空間根目錄/%0/cgi-bin
</VirtualHost> [/code:1:d86f47f91f]
方法三:[color=red:d86f47f91f]基于 IP 地址的虛擬主機[/color:d86f47f91f]
[code:1:d86f47f91f]
# 從 IP 地址反解析得到服務器名字(server name)
UseCanonicalName DNS
# 在日志中包含 IP 地址,便于后續分發
LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon
CustomLog logs/access_log vcommon
# 在文件路徑中包含 IP 地址 %0表示IP
VirtualDocumentRootIP /www/hosts/%0/docs
VirtualScriptAliasIP /www/hosts/%0/cgi-bin
[/code:1:d86f47f91f]
方法四:[color=red:d86f47f91f]使用 mod_rewrite 的虛擬主機系統[/color:d86f47f91f]
[code:1:d86f47f91f]
RewriteEngine on
RewriteMap lowercase int:tolower
# 檢查 hostname 正確與否,之后才能使 RewriteRule 起作用
RewriteCond ${lowercase:%{SERVER_NAME}} ^www\.[a-z-]+\.isp\.com$
# 將虛擬主機名字廉潔到 URI 的開頭
# [C] 表明本次重寫的結果將在下一個 rewrite 規則中使用
RewriteRule ^(.+) ${lowercase:%{SERVER_NAME}}$1 [C]
# 現在創建實際的文件名
RewriteRule ^www\.([a-z-]+)\.isp\.com/(.*) /home/$1/$2
[/code:1:d86f47f91f]
[color=blue:d86f47f91f][size=24:d86f47f91f]重頭戲[/size:d86f47f91f][/color:d86f47f91f]
方法五:[color=red:d86f47f91f]使用獨立的虛擬主機配置文件[/color:d86f47f91f]
[color=red:d86f47f91f]當你修改vhost.map的時候,不需要重新啟動Apache[/color:d86f47f91f]
[code:1:d86f47f91f]
這樣的布局利用了 mod_rewrite 的高級特性, 在獨立的虛擬主機配置文件中轉換。如此可以更為靈活,但需要較為復雜的設置。
vhost.map 文件包含了類似下面的內容:
www.customer-1.com /www/customers/1
www.customer-2.com /www/customers/2
#......
www.customer-N.com /www/customers/N
http.conf 包含了:
RewriteEngine on
RewriteMap lowercase int:tolower
# 定義映像文件
RewriteMap vhost txt:/VHOST.map的路徑/vhost.map
# 和上面的例子一樣,處理變名
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# 這里做基于文件的重新映射
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/docs/$1
RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1
[/code:1:d86f47f91f]
[quote:d86f47f91f]
以上內容來自Apache2的"動態配置大型虛擬主機",在這里列出來,是為了方便某些不想看文檔的人參考一下子。
如果你去http://w.yi.org,使用關鍵字 虛擬主機 搜索一下子,相信會有更多的資料?。?!
[/quote:d86f47f91f]
haohaoo 回復于:2004-04-03 11:23:22
|
謝謝,最后一種方法還沒有看到哦
|
haohaoo 回復于:2004-04-03 11:31:19
|
http://www.1842.net/apache/vhosts/mass.html
我實在太懶了,原來自己有啊
|
原文轉自:http://www.kjueaiud.com
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
|