码迷,mamicode.com
首页 > 其他好文 > 详细

基于IP、端口和FQDN实现虚拟主机

时间:2014-08-11 03:08:51      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:端口号   httpd   基于ip   

虚拟主机可以实现多站点共存,当站点的访问量不大时,为了节省资源(IP,物理主机),可以将多个站点运行于一台物理主机。


一、基于IP的虚拟主机:

实现虚拟主机必须先将中心主机的配置注释掉,即禁用中心主机,只需要注释DocumentRoot指令对应的行,而后再定义虚拟主机。

基于IP的虚拟主机要求一台物理机上要有多个IP,每个虚拟主机分别监听在不同IP地址上,访问时可以基于虚拟主机的名称也可以使用IP地址的方式在浏览器界面内访问。比如,两台虚拟主机www.a.org和www.b.net,我们的物理主机有两个IP地址192.168.1.133和192.168.1.134,www.a.org运行在192.168.1.133的IP上,www.b.net运行在192.168.1.134上

首先配置主机的第二块网卡:

# ifconfig eth0:0 192.168.1.134/24

创建虚拟主机使用的目录:

# mkdir /var/www/{hosta,hostb}

编辑两个虚拟主机使用的默认主页面,内容分别为www.a.org和www.b.net。

修改httpd的配置文件的添加如下内容:

bubuko.com,布布扣

配置完成后检查语法并重启服务:# httpd -t  # service httpd restart

bubuko.com,布布扣


二、基于端口的虚拟主机:

基于端口的虚拟主机实现,设定www.a.org使用192.168.1.133的80端口,www.b.net使用192.168.1.133的8080端口,修改配置文件如下:

bubuko.com,布布扣

注意:基于不同端口的虚拟主机在实现时由于添加了新的端口,所以需要添加指定监听的端口:

bubuko.com,布布扣

更改监听的端口后,需要重启服务从能生效,# service httpd restart。

另外如果使用IE浏览器测试时,如果是测试www.b.net这个虚拟主机,需要在浏览器内输入http://192.168.1.133:8080,不能简单的输入192.168.1.133:8080,否则显示找不到网页。正常的测试结果如下:

bubuko.com,布布扣

bubuko.com,布布扣

三、基于主机名实现虚拟主机

实现基于主机名称的虚拟主机要求主机名称必须不同,另外除了需要在配置文件中注释掉中心主机的DocumentRoot指令对应的行以外还需要启用NameVirtualHost指令对应的行,默认情况下基于名称的虚拟主机监听在80端口。

bubuko.com,布布扣

设定我们的两个虚拟主机www.a.org和www.b.net都监听在192.168.1.133的80端口上,配置如下图:

bubuko.com,布布扣

配置基于名称的虚拟主机时,如果在NameVirtualHost指令后指定监听的所有地址,那么在虚拟主机的定义中要保持一致,如果指定的是IP地址,那么虚拟机中也使用IP地址,而不要用表示所有地址的*,否则会报个错误,意思是两个虚拟主机使用了相同的IP地址和端口,发生了重叠,具体的报错信息如下:

bubuko.com,布布扣

建议使用指定IP地址的方式显式的表明哪些虚拟主机是基于名称的方式的。

如果在windows操作系统内测试,需要在系统目录的windows/system32/drivers/etc/hosts文件内添加对应的解析条目,才可以正常的解析设置的虚拟主机名称,测试结果如下:

bubuko.com,布布扣



bubuko.com,布布扣

基于IP、端口和FQDN实现虚拟主机,布布扣,bubuko.com

基于IP、端口和FQDN实现虚拟主机

标签:端口号   httpd   基于ip   

原文地址:http://9164364.blog.51cto.com/9154364/1538257

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!