基于IP、端口和FQDN实现虚拟主机
2014-08-10 18:56
609 查看
虚拟主机可以实现多站点共存,当站点的访问量不大时,为了节省资源(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的配置文件的添加如下内容:
配置完成后检查语法并重启服务:# httpd -t # service httpd restart
二、基于端口的虚拟主机:
基于端口的虚拟主机实现,设定www.a.org使用192.168.1.133的80端口,www.b.net使用192.168.1.133的8080端口,修改配置文件如下:
注意:基于不同端口的虚拟主机在实现时由于添加了新的端口,所以需要添加指定监听的端口:
更改监听的端口后,需要重启服务从能生效,# service httpd restart。
另外如果使用IE浏览器测试时,如果是测试www.b.net这个虚拟主机,需要在浏览器内输入http://192.168.1.133:8080,不能简单的输入192.168.1.133:8080,否则显示找不到网页。正常的测试结果如下:
三、基于主机名实现虚拟主机
实现基于主机名称的虚拟主机要求主机名称必须不同,另外除了需要在配置文件中注释掉中心主机的DocumentRoot指令对应的行以外还需要启用NameVirtualHost指令对应的行,默认情况下基于名称的虚拟主机监听在80端口。
设定我们的两个虚拟主机www.a.org和www.b.net都监听在192.168.1.133的80端口上,配置如下图:
配置基于名称的虚拟主机时,如果在NameVirtualHost指令后指定监听的所有地址,那么在虚拟主机的定义中要保持一致,如果指定的是IP地址,那么虚拟机中也使用IP地址,而不要用表示所有地址的*,否则会报个错误,意思是两个虚拟主机使用了相同的IP地址和端口,发生了重叠,具体的报错信息如下:
建议使用指定IP地址的方式显式的表明哪些虚拟主机是基于名称的方式的。
如果在windows操作系统内测试,需要在系统目录的windows/system32/drivers/etc/hosts文件内添加对应的解析条目,才可以正常的解析设置的虚拟主机名称,测试结果如下:
一、基于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的配置文件的添加如下内容:
配置完成后检查语法并重启服务:# httpd -t # service httpd restart
二、基于端口的虚拟主机:
基于端口的虚拟主机实现,设定www.a.org使用192.168.1.133的80端口,www.b.net使用192.168.1.133的8080端口,修改配置文件如下:
注意:基于不同端口的虚拟主机在实现时由于添加了新的端口,所以需要添加指定监听的端口:
更改监听的端口后,需要重启服务从能生效,# service httpd restart。
另外如果使用IE浏览器测试时,如果是测试www.b.net这个虚拟主机,需要在浏览器内输入http://192.168.1.133:8080,不能简单的输入192.168.1.133:8080,否则显示找不到网页。正常的测试结果如下:
三、基于主机名实现虚拟主机
实现基于主机名称的虚拟主机要求主机名称必须不同,另外除了需要在配置文件中注释掉中心主机的DocumentRoot指令对应的行以外还需要启用NameVirtualHost指令对应的行,默认情况下基于名称的虚拟主机监听在80端口。
设定我们的两个虚拟主机www.a.org和www.b.net都监听在192.168.1.133的80端口上,配置如下图:
配置基于名称的虚拟主机时,如果在NameVirtualHost指令后指定监听的所有地址,那么在虚拟主机的定义中要保持一致,如果指定的是IP地址,那么虚拟机中也使用IP地址,而不要用表示所有地址的*,否则会报个错误,意思是两个虚拟主机使用了相同的IP地址和端口,发生了重叠,具体的报错信息如下:
建议使用指定IP地址的方式显式的表明哪些虚拟主机是基于名称的方式的。
如果在windows操作系统内测试,需要在系统目录的windows/system32/drivers/etc/hosts文件内添加对应的解析条目,才可以正常的解析设置的虚拟主机名称,测试结果如下:
相关文章推荐
- 基于同IP不同端口,同端口不同Ip的虚拟主机 基于FQDN的虚拟主机
- Apache虚拟主机(基于IP、基于端口、基于域名)
- RHEL的Apache配置(基于ip&端口&域名的虚拟主机和认证)
- Tengine笔记2:通过IP、域名、端口实现虚拟主机
- Apache基于IP与端口建立虚拟主机
- apache学习五基于端口和ip的虚拟主机
- 实验:IIS虚拟主机实现一个ip一个端口多个Web站点
- APAHCE基于IP端口的虚拟主机的设定
- 基于FQDN虚拟主机的实现
- nginx配置基于端口和基于IP的虚拟主机
- Apache配置虚拟主机的三种方法(基于IP、端口、域名)
- apache 基于域名,IP,端口 3种方式的虚拟主机
- Nginx基于IP,端口,域名配置虚拟主机
- 如何配置Apache虚拟主机?(基于IP、基于端口、基于域名)
- 基于ip、端口、主机名的虚拟主机建立过程
- 在linux平台上搭建目前企业公司中基于域名,ip以及端口的虚拟主机apache服务!还有
- 如何配置Apache虚拟主机?(基于IP、基于端口、基于域名)
- 【Apache学习】linux中基于ip、基于端口的虚拟主机
- apache服务器基于ip以及基于端口的虚拟主机访问
- Http——基于IP、端口、域名虚拟主机的配置方法