一. apache的虚拟主机介绍

来源:互联网 发布:mac pro怎么隐藏文件 编辑:程序博客网 时间:2024/04/30 09:17

一. apache的虚拟主机介绍
虚拟主机是指在一个机器上运行多个网站(比如:www.company1.comwww.company2.com)。如果每个网站拥有不同的IP地址,则虚拟主机可以是基于IP的;如果只有一个IP地址,也可以是基于主机名的,其实现对最终用户是透明的。
 
二. apache建立虚拟的方法
 
1.是传统的apache建立虚拟主机方法,配置完成后,需重新启动apache,格式如下:

修改apache配置文件httpd.conf

NameVirtualHost *:80 去掉这行注释
并在末尾添加如下行
Include /usr/local/apache2/conf/vhost.conf
保存httpd.conf文件并退出
vi vhost.conf
每个虚拟主机需要在此文件中添加这样一段
VirtualHost *:80
ServerName member.hipiao.com ####这里写虚拟主机的域名DocumentRoot /usr/local/apache2059/htdocs/hipiao/member/index  ####这里写虚拟主机的实际路径
ErrorLog logs/member-error_log ###此虚拟主机的error日志路径以及文件名
CustomLog logs/memeber-access_log common  ###此虚拟主机的access日志路径以及文件名
/VirtualHost

 


2.利用vhost_alias模块方法加载虚拟主机(不需重启apache)
激活mod_vhost_alias模块
修改httpd.conf
UseCanonicalName Off
VirtualDocumentRoot /www/%2+/%0
保存退出
在网站根目录下建立目录,每添加一个虚拟主机建立2层目录即可,如:
/www/test.com/www.test.com对应域名为www.test.com,如需为域名建立别名可使用ln软连接方式,方法如下:
如为www.test.com建立一个www.test1.com得别名,应首先在网页根目录下建立第一层目录
/www/test1.com 之后应用软连接ln -s /www/test.com/www.test.com /www/test1.com/www.test1.com即可


3.利用rewrite模块动态加载虚拟主机(不需重启apache)
激活mod_rewrite模块
修改httpd.conf文件,添加下行
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1

其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。
然后,在这个所在路径的目录下创建一个文件: vhost.map
格式为:
www.test.com /usr/local/apache/htdocs/test
如需建立别名www.test1.com只需指向同一目录即可 如:
www.test1.com /usr/local/apache/htdocs/test
 
三. 关于动态虚拟主机日志问题

第二和第三两种加载虚拟主机得方式为动态添加,可将多个虚拟主机日志文件写入统一文件,在进行日志切割,方法如下:


首先,您需要将虚拟主机的信息放入日志中。您可以用LogFormat指令和%v变量达到这个目的。在您的日志格式串的开头加入它们:
LogFormat %v %h %l %u %t %r %s %b vhost
CustomLog logs/multiple_vhost_log vhost
这将用日志的普通格式来创建一个日志文件。但会在每条记录前加上正式的虚拟主机名(就是在ServerName指令中定义的那个)。(参见自定义日志格式以获取更多内容)
当您想将日志文件分开(每个虚拟主机一个日志文件)的时候,您可以使用split-logfile程序来完成这个工作。您将在Apache发行版的support目录中找到这个程序。
用如下命令来运行这个程序:
split-logfile /logs/multiple_vhost_log
当这个程序在给予一个虚拟主机日志文件作为参数的情况下,会为日志文件中的每个虚拟主机建立一个文件。每个文件都以主机名.log这样的形式命名。

 

原创粉丝点击