Apache HTTP Server搭建虚拟主机(3)

虚拟主机应用案例
虚拟主机是在一台服务器上同时运行多个网站业务,Apache HTTP Server支持基于域名以及基于IP虚拟主机类型。在Apache配置文件中虚拟主机指令需要使用VirtualHost容器封装。基于IP的虚拟主机可以根据不同的IP地址以及端口号定位不同的网站请求,但基于IP的虚拟主机需要独立的IP地址定位连接的网站,而目前IP地址是互联网的稀缺资源,所以很多时候我们更喜欢基于域名的虚拟主机,服务器可以根据客户端访问HTTP的头部信息来实现网站的分离解析,客户端可以使用不同的域名访问位于同一IP地址的服务器资源。
当客户端请求到达后,服务器会根据<VirtualHost IP地址:[端口号]>参数匹配IP地址与端口号,IP地址可以使用*匹配服务器本地所有IP地址。接下来我们通过一个案例说明基于域名虚拟主机的实现方式,首先我们需要将主配置文件中Include conf/extra/httpd-vhosts.conf这样功能开启,默认该行为注释行,去除#符号即可。Include指令会将httpd-vhosts.conf文件视作为配置文件的一部分。下面我们仅列出该配置文件中需要修改的部分。

[root@CentOS6 ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

ServerAdmin Jacob_test@gmail.com

DocumentRoot "/usr/local/apache2/htdocs/example"

ServerName

ServerAlias web.example.com

ErrorLog "logs/www.example.com-error_log"

CustomLog "logs/www.example.com-access_log" common

</VirtualHost>

<VirtualHost *:80>

ServerAdmin Jacob_test@gmail.com

DocumentRoot "/usr/local/apache2/htdocs/test"

ServerName

ErrorLog "logs/test. com-error_log"

CustomLog "logs/test.com-access_log" common

</VirtualHost>

[root@centos6 ~]# mkdir -p /usr/local/apache2/htdocs/{example,test}

[root@centos6 ~]# echo “example.com” > /usr/local/apache2/htdocs/example

[root@centos6 ~]# echo “test.com” > /usr/local/apache2/htdocs/test

[root@centos6 ~]# iptables -I INPUT -p tcp -dport 80 -j ACCEPT

[root@centos6 ~]# /usr/local/apache2/bin/apachectl restart

Apache HTTP Sever完成以上配置后即可实现基于相同IP地址的与网站。可以使用客户端访问这两个域名测试效果,如果没有合法的DNS服务器可以通过修改hosts文件的方式进行域名解析。如果读者需要实现基于IP地址的虚拟主机,只需要将VirtualHost后面的*修改为固定的IP地址即可,多个虚拟主机需要使用多个VirtualHost封装。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/46f1dc0774b5d4bd2e86b6588ad26226.html