构建虚拟Web主机(基于域名、端口和IP)

虚拟主机简介

●虚拟Web主机
在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机
●httpd支持的虚拟主机类型
基于域名的虚拟主机
基于IP地址的虚拟主机
基于端口的虚拟主机
(基于域名和端口的生产环境用的多)

基于域名的虚拟主机

示例:构建2个虚拟Web站点
www.test.com 14.0.0.40
www.benet.com 14.0.0.40
1.安装DNS服务的软件包–bind;做两个站点域名对应IP地址的解析

yum -y install bind
[root@service ~]# vim /etc/named.conf 
options {
        listen-on port 53 { any; };
         allow-query     { any; };
[root@service ~]# vim /etc/named.rfc1912.zones   ##区域配置文件中配置域名的两个区域
zone "test.com" IN {
        type master;
        file "test.com.zone";
        allow-update { none; };
};
zone "benet.com" IN {
        type master;
        file "benet.com.zone";
        allow-update { none; };
};
[root@service ~]# cd /var/named/            ##进入/var/named目录下复制区域数据配置文件的模板文件
[root@service named]# cp -p named.localhost test.com.zone   
[root@service named]# vim test.com.zone        
        NS      @
        A       127.0.0.1
www IN A        14.0.0.40           ##在www.test.com的区域数据配置文件中添加地址解析
[root@service named]# cp -p  test.com.zone benet.com.zone
         ##将www.test.com的区域数据配置文件复制为www.benet.com的区域数据配置文件

2.添加虚拟主机配置

[root@service named]# vim /etc/httpd/conf/extra/httpd-vhosts.conf   ##需自己创建extra目录,再配置一份虚拟主机的apache网站配置
VirtualHost *:80>
   DocumentRoot "/var/www/html/test"      ##虚拟主机站点
   ServerName www.test.com                   ##域名
   ErrorLog "logs/www.test.com.error_log"    ##指定错误日志文件
   CustomLog "logs/www.test.com.access_log" common   
                                       ##指定访问日志文件,common代表下面还有子集标签,必须要加
   <Directory "/var/www/html">      ##<Directory>便签中设置网页的访问权限
   Require all granted                    ##允许所有人访问
   </Directory>
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot "/var/www/html/benet"
   ServerName www.benet.com
   ErrorLog "logs/www.benet.com.error_log"
   CustomLog "logs/www.benet.com.access_log" common
   <Directory "/var/www/html">
    Require all granted 
   </Directory>
 </VirtualHost>

3.注意!由于这个extra目录下的httpd-vhosts.conf配置文件是自己创建的,apache服务无法自动识别,需要在主配置文件的最后指向httpd-vhosts.conf,(类似于DNS服务的主配置文件中会指向区域配置文件)

[root@service named]# vim /etc/httpd/conf/httpd.conf 
......省略内容
Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
Include conf/extra/httpd-vhosts.conf       ##指向自己创建的配置文件位置
4.为两个网站创建各自的首页
[root@service logs]# cd /var/www/html/
[root@service logs]# mkdir test benet
[root@service test]# vim index.html    
<h1>this is test</h1>
[root@service test]# cd ../benet
[root@service benet]# vim index.html 
<h1>this is benet</h1>

5.启动服务并进行验证
再开一台win10的虚拟机作为客户机,DNS地址换成虚拟主机的地址
在这里插入图片描述

基于端口的虚拟主机

示例:构建2个虚拟Web站点
www.benet.com 14.0.0.40:80
www.benet.com 14.0.0.40:8080
1.在上个基于域名的虚拟主机的实验基础上修改配置文件

[root@service logs]# vim /etc/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>           ##虚拟主机使用80端口
   DocumentRoot "/var/www/html/benet"
   ServerName www.benet.com
   ErrorLog "logs/www.benet.com.error_log"
   CustomLog "logs/www.benet.com.access_log" common
   <Directory "/var/www/html">
   Require all granted 
   </Directory>
</VirtualHost>

<VirtualHost *:8080>         ##虚拟主机使用8080端口
   DocumentRoot "/var/www/html/benet02"
   ServerName www.benet.com
   ErrorLog "logs/www.benet02.com.error_log"
   CustomLog "logs/www.benet02.com.access_log" common
   <Directory "/var/www/html">
   Require all granted 
   </Directory>
</VirtualHost>

2.因为两个虚拟主机使用不同的端口,所以在主配置文件中要多开一个监听端口

[root@service named]# vim /etc/httpd/conf/httpd.conf 
......省略内容
Listen 14.0.0.40:80
Listen 14.0.0.40:8080
#Listen 80
......省略内容

3.为不同端口的网站创建各自的首页(www.benet.com刚才已经创建过了)

[root@service logs]# cd /var/www/html/
[root@service logs]# mkdir benet02
[root@service benet02]#  vim index.html 
<h1>this is benet02</h1>

4.重新启动服务并进行验证

在这里插入图片描述

基于IP的虚拟主机

示例:构建2个虚拟Web站点
www.test.com IP地址为14.0.0.40
www.test02.com IP地址为14.0.0.66
实现在浏览器中访问这两个IP时,分别显示不同的内容

1.添加一张网卡,配置IP地址为14.0.0.66
2.在上个基于端口的虚拟主机的实验基础上修改配置文件

[root@service html]# vim /etc/httpd/conf/extra/httpd-vhosts.conf 
<VirtualHost 14.0.0.40:80>
   DocumentRoot "/var/www/html/test"
   ErrorLog "logs/www.test.com.error_log"
   CustomLog "logs/www.test.com.access_log" common
   <Directory "/var/www/html">
   Require all granted
   </Directory>
</VirtualHost>

<VirtualHost 14.0.0.66:80>
   DocumentRoot "/var/www/html/test02"
   ErrorLog "logs/www.test02.com.error_log"
   CustomLog "logs/www.test02.com.access_log" common
   <Directory "/var/www/html">
   Require all granted
   </Directory>
</VirtualHost>
[root@service test02]# netstat -ntap | grep httpd
tcp        0      0 14.0.0.66:80            0.0.0.0:*               LISTEN      11622/httpd         
tcp        0      0 14.0.0.40:80            0.0.0.0:*               LISTEN      11622/httpd

3.为14.0.0.66的网站创建自己的首页(14.0.0.40前面已经创建过了)

[root@service html]# ls
benet  benet02  test  test02
[root@service html]# cd test02/
[root@service test02]# vim index.html 
<h1>this is test02</h1>

4.在主配置文件中配置监听两个站点的IP

[root@service test02]# vim /etc/httpd/conf/httpd.conf  ##监听两个站点的IP地址
......省略内容
Listen 14.0.0.40:80
Listen 14.0.0.66:80
#Listen 80
......省略内容

5.重新启动服务并进行验证

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值