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规则详解