如何构建虚拟Web主机(基于域名、IP地址、端口)

一、虚拟Web主机概述

  • 在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机机
  • 通过虚拟web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本

httpd支持的虚拟主机类型

  • 基于域名的虚拟主机
    • 为每个虚拟主机使用不同的域名,但是其对应的IP地址使相同的
    • 域名不同–IP相同,端口相同
    • 基于域名是最为普遍的虚拟web主机类型
  • 基于IP地址的虚拟主机
    • 为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同
    • 这种方式需要为服务器配备多个网络接口,因此应用不是很广泛
    • IP不同,端口相同
  • 基于端口的虚拟主机
    • 这种方式并不使用域名,IP地址来区分不同的站点内容,而是使用不同的TCP端口号
    • 因此用户在浏览不同的虚拟站点时需要同时制定端口号才能访问
    • IP相同,端口不同

二、基于域名构建虚拟主机

  • 构建2个虚拟Web站点
    • www.yyc.com,IP地址为14.0.0.41
    • www.benet.com,IP地址为14.0.0.41
  • 在浏览器中访问这两个域名时,分别显示不同的内容

【1】安装httpd服务和DNS域名解析服务

[root@localhost named]# iptables -F
[root@localhost named]# setenforce 0
[root@localhost ~]# yum install httpd bind -y

【2】修改DNS主配置文件

[root@localhost ~]# vim /etc/named.conf    '修改主配置文件'
options {
        listen-on port 53 { any; };    '改为any'
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };      '改为any'

【3】修改DNS区域配置文件

[root@localhost ~]# vim /etc/named.rfc1912.zones     '修改区域配置文件'
zone "yyc.com" IN {
        type master;
        file "yyc.com.zone";
        allow-update { none; };
};

zone "benet.com" IN {
        type master;
        file "benet.com.zone";
        allow-update { none; };
};

【4】添加区域数据配置文件

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -p named.localhost yyc.com.zone
[root@localhost named]# vim yyc.com.zone    ###修改区域数据配置文件
        NS      @
        A       127.0.0.1
www IN  A       14.0.0.41        '添加解析记录'
[root@localhost named]# cp -p yyc.com.zone benet.com.zone    '此时不需要修改,因为现在做的是基于不同域名访问不同网站,解析的是同一个地址'

开启域名解析服务并测试

[root@localhost named]# systemctl start named

在这里插入图片描述

【5】配置httpdf服务,添加虚拟主机配置文件

[root@localhost conf]# cd /etc/httpd/conf/    '进入主配置文件目录'
[root@localhost conf]# ls
httpd.conf  magic
[root@localhost conf]# mkdir extra     '在主配置文件的同目录下创建一个目录extra'
[root@localhost conf]# ls
extra  httpd.conf  magic
[root@localhost conf]# cd extra/
[root@localhost extra]# ls
[root@localhost extra]# vim vhost.conf     '建立一个文件vhost.conf,需要自己写'

<VirtualHost *:80>
  DocumentRoot "/var/www/html/yyc"
  ServerName www.yyc.com
  ErrorLog "logs/www.yyc.com.error_log"
  CustomLog "logs/www.yyc.com.access_log" common
  <Directory "/var/www/html">
    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>

【6】添加站点网页文件

[root@localhost extra]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# mkdir yyc benet
[root@localhost html]# ls
benet  yyc
[root@localhost html]# cd yyc/
[root@localhost yyc]# vim index.html
<h1>this is yyc web</h1>
[root@localhost yyc]# cd ../benet
[root@localhost benet]# vim index.html
<h1>this is benet web</h1>

【7】修改http配置文件

[root@localhost benet]# cd /etc/httpd/conf
[root@localhost conf]# ls
extra  httpd.conf  magic
[root@localhost conf]# cd extra/
[root@localhost extra]# ls
vhost.conf
[root@localhost extra]# vim /etc/httpd/conf/httpd.conf 
Include conf/extra/vhost.conf    '末尾加一行'
[root@localhost extra]# systemctl restart httpd

【8】网页验证
在这里插入图片描述
在这里插入图片描述

三、基于端口构建虚拟主机

  • 构建两个虚拟Web站点
    • www.benet.com,IP地址、端口号为14.0.0.41:80
    • www.benet.com,IP地址、端口号为14.0.0.41:8080

在上面基于域名的基础上
修改虚拟主机配置文件

'修改虚拟主机配置文件'
[root@localhost extra]# vim vhost.conf
<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>

<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>

添加站点网页文件

[root@localhost extra]# mkdir /var/www/html/benet02
[root@localhost extra]# vim /var/www/html/benet02/index.html
<h1>this is benet02 web</h1>

修改http主配置文件

[root@localhost extra]# vim /etc/httpd/conf/httpd.conf  '在主配置文件中多开一个监听端口'
Listen 14.0.0.41:80
Listen 14.0.0.41:8080
#Listen 80

重启httpd服务,并查看服务状态

[root@localhost extra]# systemctl restart httpd.service 

[root@localhost extra]# netstat -ntap | grep httpd
tcp        0      0 14.0.0.41:8080          0.0.0.0:*               LISTEN      71894/httpd         
tcp        0      0 14.0.0.41:80            0.0.0.0:*               LISTEN      71894/httpd         

网页验证
在这里插入图片描述
在这里插入图片描述

三、基于IP地址构建虚拟主机

  • 构建2个虚拟Web站点
    • www.yyc.com,IP地址为14.0.0.41
    • www.yyc02.com,IP地址为14.0.0.51
  • 在浏览器中访问这两个IP时,分别显示不同的内容

仍然在上面基于端口的基础上
修改虚拟主机配置文件

[root@localhost extra]# vim vhost.conf
  1 <VirtualHost 14.0.0.41:80>
  2   DocumentRoot "/var/www/html/yyc"
  3   ErrorLog "logs/www.yyc.com.error_log"
  4   CustomLog "logs/www.yyc.com.access_log" common
  5   <Directory "/var/www/html">
  6     Require all granted
  7   </Directory>
  8 </VirtualHost>
  9  
 10 <VirtualHost 14.0.0.51:80>
 11   DocumentRoot "/var/www/html/yyc02"
 12   ErrorLog "logs/www.yyc02.com.error_log"
 13   CustomLog "logs/www.yyc02.com.access_log" common
 14   <Directory "/var/www/html">
 15     Require all granted
 16   </Directory>
 17 </VirtualHost>

添加站点网页文件

[root@localhost extra]# mkdir /var/www/html/yyc02
[root@localhost extra]# vim /var/www/html/yyc02/index.html
<h1>this is yyc02 web</h1>

修改http主配置文件

[root@localhost extra]# vim /etc/httpd/conf/httpd.conf 
Listen 14.0.0.41:80
Listen 14.0.0.51:80
#Listen 80

重启httpd服务,并查看服务状态

[root@localhost extra]# netstat -ntap | grep httpd
tcp        0      0 14.0.0.51:80            0.0.0.0:*               LISTEN      73397/httpd         
tcp        0      0 14.0.0.41:80            0.0.0.0:*               LISTEN      73397/httpd         

网页验证
在这里插入图片描述
在这里插入图片描述
实验完成

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值