大容量虚拟主机的动态配置

php中文网
发布: 2016-06-07 15:10:54
原创
1313人浏览过

方法一:简单的 动态 虚拟 主机 代码: 这是 httpd.conf 文件中,完成 虚拟 主机 的 配置 方法,这里采用了 mod_vhost_alias 。 # 从 Host: 头中取得服务器名字 Server Name UseCanonicalName Off # 这里的日志格式,可以在将来通过第一个参数域来分隔不同的 虚

方法一:简单的动态虚拟主机

代码:

这是 httpd.conf 文件中,完成虚拟主机配置方法,这里采用了 mod_vhost_alias 。

# 从 Host: 头中取得服务器名字 Server Name

UseCanonicalName Off

# 这里的日志格式,可以在将来通过第一个参数域来分隔不同的虚拟主机的日志

LogFormat "%V %h %l %u %t "%r" %s %b" vcommon

CustomLog logs/access_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 地址解析而得。

方法二:多个的动态虚拟主机

代码:

UseCanonicalName Off

LogFormat "%V %h %l %u %t "%r" %s %b" vcommon



Options FollowSymLinks

AllowOverride All





Options FollowSymLinks

AllowOverride None





ServerName www.commercial.isp.com

CustomLog logs/access_log.commercial vcommon

VirtualDocumentRoot /www/commercial/%0/docs

VirtualScriptAlias /www/commercial/%0/cgi-bin





ServerName www.homepages.isp.com

CustomLog logs/access_log.homepages vcommon

VirtualDocumentRoot /虚拟主机空间根目录/%0/htdocs

VirtualScriptAlias /虚拟主机空间根目录/%0/cgi-bin



方法三:基于 IP 地址的虚拟主机

代码:

# 从 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



方法四:使用 mod_rewrite 的虚拟主机系统

代码:

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



重头戏

方法五:使用独立的虚拟主机配置文件

当你修改vhost.map的时候,不需要重新启动Apache

代码:

这样的布局利用了 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



引用:

以上内容来自Apache2的"动态配置大型虚拟主机",在这里列出来,是为了方便某些不想看文档的人参考一下子。

如果你去http://w.yi.org,使用关键字 虚拟主机 搜索一下子,相信会有更多的资料
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号