/ 中存储网

Apache服务器中配置虚拟主机(vhost)的方法

2014-02-06 16:30:01 来源:kejihao

先附上官方的examples:http://httpd.apache.org/docs/2.0/vhosts/examples.html

首先找到Apache的配置文件httpd.conf

确认有下面一行:

# Virtual hosts

Include "conf/extra/httpd-vhosts.conf"

如果没有,请在配置文件末尾添加。然后找到httpd-vhosts.conf添加配置。

复制里面的一个example,进行修改,这里以example.com为例。

#

# Use name-based virtual hosting.

#

NameVirtualHost *:80

ServerAdmin [email protected]

DocumentRoot "D:/xampp/htdocs/example"

ServerName www.example.com

ErrorLog "logs/www.example.com-error.log"

NameViretualHost是启用基于名字的虚拟主机,若不配置该选项,则只有第一个VirtualHost的配置会生效。

DocumentRoot指向网站的根目录即可,需要注意的是,localhost是指向默认的DocumentRoot,但添加过vhost配置以后,这个配置会失效,所以我们也需要为localhost配置一个虚拟主机,方便本地的调试。继续添加下面的配置:

    ServerAdmin [email protected]

DocumentRoot "D:/xampp/htdocs"

ServerName localhost

ErrorLog "logs/localhost-error.log"

若有多个站点,多个IP,可以参照下面的配置:

Listen 80

# This is the "main" server running on 172.20.30.40

ServerName server.domain.com

DocumentRoot /www/mainserver

# This is the other address

NameVirtualHost 172.20.30.50

DocumentRoot /www/example1

ServerName www.example1.com

# Other directives here ...

DocumentRoot /www/example2

ServerName www.example2.org

# Other directives here ...

所有不是发送至172.20.30.50的请求都会转发到main server;发送到172.20.30.50的请求,如果HostName未知或者在HTTP报头中没有指定HostName,那么该请求会转发至www.example1.com处理。

配置好之后,重启Apache即可让配置生效。