Apache的虛擬主機配置
添加時間:2010-11-21
添加:
admin
1.2 虛擬主機配置
首先用“記事本”程序打開“httpd.conf”配置文件。此文件存放在Apache服務器安裝路徑下的“conf”文件夾內。
一、使用 mod_vhost_alias
1.簡單的動態虛擬主機
(1)從 Host: 頭中取得服務器名字 Server Name
UseCanonicalName Off
(2)這里的日志格式,可以在將來通過第一個參數域來分隔不同的虛擬主機的日志
LogFormat "%V %h %l %u %t "%r" %s %b" vcommon CustomLog logs/access_log vcommon
(3)在返回請求的文件名的路徑中包含進服務器名字: server name
VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin
2.更為有效的基于 IP 地址的虛擬主機
(1)從 IP 地址反解析得到服務器名字(server name)
UseCanonicalName DNS
(2)在日志中包含 IP 地址,便于后續分發
LogFormat "%A %h %l %u %t "%r" %s %b" vcommon CustomLog logs/access_log vcommon
(3)在文件路徑中包含 IP 地址
VirtualDocumentRootIP /www/hosts/%0/docs VirtualScriptAliasIP /www/hosts/%0/cgi-bin
二、使用 mod_rewrite
1. 使用 mod_rewrite 實現簡單的動態虛擬主機
(1)從 Host: 頭獲取服務器名字
UseCanonicalName Off
(2)可分割的日志
LogFormat "%i %h %l %u %t "%r" %s %b" vcommon CustomLog logs/access_log vcommon <Directory /www/hosts> ExecCGI is needed here because we can't force CGI execution in the way that ScriptAlias does Options FollowSymLinks ExecCGI </Directory>
(3)接下來是關鍵部分
RewriteEngine On a ServerName derived from a Host: header may be any case at all RewriteMap lowercase int:tolower
首先處理普通文檔:
允許變名 /icons/ 起作用 - 其他變名類同 RewriteCond % !^/icons/ 允許 CGIs RewriteCond % !^/cgi-bin/ 開始“變戲法” RewriteRule ^/(.*)$ /www/hosts/$}/docs/
現在處理 CGIs - 我們需要強制使用一個 MIME 類型
RewriteCond % ^/cgi-bin/ RewriteRule ^/(.*)$ /www/hosts/$}/cgi-bin/ [T=application/x-httpd- cgi]
2.使用獨立的虛擬主機配置文件 vhost.map
(1)vhost.map 文件包含了類似下面的內容:
www.customer-1.com /www/customers/1 www.customer-2.com /www/customers/2 ... www.customer-N.com /www/customers/N
(2)http.conf 包含了:
RewriteEngine on RewriteMap lowercase int:tolower
(3)定義映像文件
RewriteMap vhost txt:/www/conf/vhost.map
(4)和上面的例子一樣,處理變名
RewriteCond % !^/icons/ RewriteCond % !^/cgi-bin/ RewriteCond $} ^(.+)$
(5)這里做基于文件的重新映射
RewriteCond $ ^(/.*)$ RewriteRule ^/(.*)$ %1/docs/ RewriteCond % ^/cgi-bin/ RewriteCond $} ^(.+)$ RewriteCond $ ^(/.*)$ RewriteRule ^/(.*)$ %1/cgi-bin/
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解