16.6.3 基于主机名的虚拟主机服务

16.6.3  基于主机名的虚拟主机服务

由于基于IP地址的虚拟主机服务有如上的缺点,HTTP 1.1协议中增加了对基于主机名的虚拟主机服务的支持。具体地说,当客户程序向Web服务器发出请求时,客户想要访问的主机名也通过请求头中的“Host:”语句传递给Web服务器。Web服务器程序接收到这个请求后,可以通过检查“Host:”语句来判定客户程序请求是哪个虚拟主机的服务,然后再做进一步的处理。通过这样的方式,提供虚拟主机服务的机器上只要设置一个IP地址,理论上就可以给无数多个虚拟域名提供服务。这样占用资源少,管理方便,所以目前基本上都是使用这种方式来提供虚拟主机服务。

与基于IP地址的虚拟主机服务的配置方法略有不同,用户必须在httpd.conf配置文件中使用NameVirtualHost参数,其格式如下所示。

 

NameVirtualHost IP地址/主机名[:端口]

 

该参数告诉Apache服务器,这里配置的是一个基于主机名的虚拟主机,使用的IP地址为参数中所设置的IP地址或主机名对应的IP地址。下面还是以前面的例子基础来演示基于主机名的虚拟主机的配置步骤。

1)在/etc/hosts中添加如下的内容:

 

172.20.17.55    www.server1.com

172.20.17.55    www.server2.com

 

2)在/usr/local/apache2/htdocs目录下建立两个目录server1_nameserver2_name,并分别在这两个目录下生成一个index.html文件,其内容如下所示。server1_name目录下的内容/usr/local/apache2/htdocs/server1_name/index.html如下:

 

<HTML>

<HEAD>

<TITLE>基于主机名的虚拟主机测试</TITLE>

</HEAD>

<BODY>

基于主机名的虚拟主机测试:<FONT SIZE="6">www.server1.com</FONT>

</BODY>

</HTML>

 

server2_name目录下的内容/usr/local/apache2/htdocs/server2_name/index.html如下:

 

<HTML>

<HEAD>

<TITLE>基于主机名的虚拟主机测试</TITLE>

</HEAD>

<BODY>

基于主机名的虚拟主机测试:<FONT SIZE="6">www.server2.com</FONT>

</BODY>

</HTML>

 

3)打开httpd.conf配置文件并添加如下内容:

 

#使用NameVirtualHost参数,设置基于主机名的虚拟主机服务使用的IP地址是172.20.17.55

NameVirtualHost 172.20.17.55

#使用VirtualHost段配置主机名www.server1.com的虚拟主机服务

<VirtualHost 172.20.17.55>

#使用ServerAdmin参数设置管理员邮箱

ServerAdmin admin@company1.com

#使用DocumentRoot参数设置网站文档的根目录

DocumentRoot /usr/local/apache2/htdocs/server1_name

#使用ServerName参数设置服务器名

ServerName www.server1.com

#使用ErrorLog参数设置Apache错误日志位置

ErrorLog /usr/local/apache2/logs/error_server1.log

</VirtualHost>

#使用VirtualHost段配置主机名www.server2.com的虚拟主机服务

<VirtualHost 172.20.17.55>

#使用ServerAdmin参数设置管理员邮箱

ServerAdmin admin@company2.com

#使用DocumentRoot参数设置网站文档的根目录

DocumentRoot /usr/local/apache2/htdocs/server2_name

#使用ServerName参数设置服务器名

ServerName www.server2.com

#使用ErrorLog参数设置Apache错误日志位置

ErrorLog /usr/local/apache2/logs/error_server2.log

</VirtualHost>

 

4)重启Apache服务使更改生效。现在,通过浏览器访问http://www.server1.com/将返回如图16.35所示的页面,如访问http://www.server2.com/则将返回如图16.36所示的页面。虽然返回的页面内容不同,但实际上它们都是在访问同一个Apache服务器。

16.35  www.server1.com的虚拟主机服务

 

 

 

 

 

16.36  www.server2.com的虚拟主机服务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值