使用不同的域名来区分不同的网站,所有的域名解析都指向同一个 IP 地址。Apache通过在HTTP头中附带的 host参数来判断用户需要访问哪一个网站。
例如要在一台服务器上设置如下两个站点:
- http://www.test1.com
- http://www.test1.com
下面以CentOS 7.2系统为例,详细说明如何配置基于不同域名的Apache虚拟主机。
第一步:开启Apache的vhost模块
在 http.conf 配置文件中,找到下面的代码行,删除前面的 # 号,并开启这个 vhost 模块。
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
第二步:在 Apache的配置文件夹下新建 vhost.conf,用以作为虚拟主机的配置文件
设默认情况下网站目录为 /webdata
根据实际情况添加以下的配置(放在同一个vhost.conf中):
1 <VirtualHost *:80> #监听80端口 2 ServerAdmin root@test1.com #网站管理员联系方式 3 DocumentRoot "/webdata/test1" #网站目录 4 ServerName www.test1.com #站点域名,用于识别不同的网站 5 ServerAlias test1.com #别名 6 ErrorLog "logs/test1-error.log" #错误日志路径 7 CustomLog "logs/test1-access.log" common #访问日志路径 8 </VirtualHost> 9 10 <VirtualHost *:80> #监听80端口 11 ServerAdmin root@test2.com #网站管理员联系方式 12 DocumentRoot "/webdata/test2" #网站目录 13 ServerName www.test2.com #站点域名,用于识别不同的网站 14 ServerAlias test2.com #别名 15 ErrorLog "logs/test2-error.log" #错误日志路径 16 CustomLog "logs/test2-access.log" common #访问日志路径 17 </VirtualHost>
第三步:在/etc/hosts文件中将网站的域名绑定到本地环回地址上(在hosts文件末尾加入以下信息)
1 127.0.0.1 www.test1.com 2 127.0.0.1 www.test2.com
第四步:重启
使用 service httpd reload 命令重新加载配置文件,或使用 service httpd restart 命令重启 Apache 进程。
最后把域名解析到服务器,不同域名成功访问了不同的网站内容。
最后把域名解析到服务器,不同域名成功访问了不同的网站内容。
下面以wampserver3.1.0为例说明在Windows本地配置多站点服务器
第一步:开启Apache的vhost模块
在 http.conf 配置文件中,找到下面的代码行,删除前面的 # 号,并开启这个 vhost 模块。#LoadModule vhost_alias_module modules/mod_vhost_alias.so
第二步:在 Apache的配置文件夹下新建 vhost.conf,用以作为虚拟主机的配置文件。
设默认情况下网站目录为D:/wamp64/www/test1
根据实际情况添加以下的配置(放在同一个vhost.conf中):
1 <VirtualHost 127.0.0.1:80> #监听80端口 2 ServerAdmin root@localhost.com #网站管理员联系方式 3 DocumentRoot "D:/wamp64/www/test1" #网站目录 4 ServerName 127.0.0.1 #站点域名,用于识别不同的网站 5 ServerAlias 127.0.0.1 #别名 6 ErrorLog "logs/test1-error.log" #错误日志路径 7 CustomLog "logs/test1-access.log" common #访问日志路径 8 </VirtualHost> 9 10 <VirtualHost 127.0.0.2:80> #监听80端口 11 ServerAdmin root@test2.com #网站管理员联系方式 12 DocumentRoot "D:/wamp64/www/test2" #网站目录 13 ServerName 127.0.0.2 #站点域名,用于识别不同的网站 14 ErrorLog "logs/test2-error.log" #错误日志路径 15 CustomLog "logs/test2-access.log" common #访问日志路径 16 </VirtualHost>