Apache中配置虚拟主机 | How to config virtualhost in apache

虚拟主机技术的产生,使得一台服务器可以在外部看做多台独立服务器,极大地降低了大家建立网站的成本。在这里,我们介绍一下如何在Apache中虚拟主机的配置方法。

首先看一下下面这篇文章,里面还包含了IIS中虚拟主机的配置方法。

虚拟主机是指在一台服务器里运行几个网站、提供WEB、FTP、Mail等服务。本文主要介绍WEB服务的虚拟主机设置。

虚拟主机有两种实现方法:基于IP的方法和基于主机名的方法。

基于IP的方法:

首先,在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。

基于主机名的方法:

首先,设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。

基本IP的方法在局域网中比较常用,基于主机名的方法在Internet中比较常用。下面以两个最常用的WEB服务器IIS和Apache为例,介绍基于主机名的虚拟主机的设置方法。

设置虚拟主机的主要步骤:

1、在动态域名客户端软件里添加多个域名。这一步的目的,是让这些域名都解析到同一个服务器上。(注:公网客户端和内网专业版TrueHost客户端可添加多个域名,内网标准版不支持多域名)。

2、在用户机器的WEB服务器(IIS、Apache等)上添加域名配置虚拟主机。

IIS虚拟主机设置

1、打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。

2、在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。

3、输入站点说明,如“站点1”。按“下一步”。

4、在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。

5、在路径里指定站点的根目录路径。按“下一步”。

6、在权限里选择适当的权限。按“下一步”,即可完成。

如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“xkzzz.com”,而同时又希望用户使用“www.xkzzz.com”也能访问。设置步骤如下:

1、在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。

2、在IP地址右边点击“高级”。

3、点击“添加”,输入端口号(一般用80),再输入主机头名“www.xkzzz.com”。

如果有多个站点要添加,请重复执行上面的步骤。

Apache虚拟主机设置

1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。

2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下:

<VirtualHost *>

ServerAdmin webmaster@comexe.cn

DocumentRoot /export/home/dns0755

ServerName dns0755.net

ServerAlias *.dns0755.net

ErrorLog “| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800”

CustomLog “| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800” combined

</VirtualHost>

说明:

ServerAdmin webmaster@comexe.cn

站点管理员Email地址

DocumentRoot /home/dns0755

站点根目录

ServerName dns0755.net

站点主机名

ServerAlias *.dns0755.net

站点别名,“*”表示任意字符

ErrorLog “| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800”

错误日志控制

CustomLog “| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800” combined

访问日志

/usr/local/sbin/rotatelogs是日志管理程序

/var/log/http/dns0755.log是日志文件名

604800的单位是秒,这种写法表示每隔7天产生一个日志文件

如果有多个站点要添加,请重复执行第2步操作。

大家如果还有不明白,或者不确定的地方,可以参看下面我总结的几个步骤

1、在httpd.conf文件中找到这样一行:#Include conf/extra/httpd-vhosts.conf

如果有,就把前面的#去掉。如果没有这行,没关系,直接在httpd.conf文件末尾加上这行即可(需要把前面的#去掉)。

2、找到Apache目录下的conf/extra/httpd-vhosts.conf文件,用记事本打开。

3、httpd-vhosts.conf里面应该是有内容的。我们就是要在这里配置虚拟主机信息的。

4、给大家一个例子大家就能看懂了:

NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin admin@localhost
DocumentRoot “e:/www/team”
ServerName team.renrenstudy.com
#ServerAlias team1.renrenstudy.com
ErrorLog “logs/vhosts/team_error.log”
CustomLog “logs/vhosts/team_access.log” common
</VirtualHost>

5、解释一下上面的例子

最重要的两行就是

DocumentRoot “e:/www/team”
ServerName team.renrenstudy.com

这里DocumentRoot指定了要添加虚拟主机的网站根目录,ServerName就是该虚拟主机的域名。



发表评论

电子邮件地址不会被公开。