web网站部署与优化--虚拟主机的构建实操(基于域名的构建、基于端口的构建、基于IP地址的构建)

一、 虚拟主机概述

虚拟 Web 主机指的是在同一台服务器中运行多个 Web 站点,其中每一个站点实际 上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。通过虚拟 Web 主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

使用 httpd 服务可以非常方便地构建虚拟主机服务器,只需要运行一个 httpd 服务 就能够同时支撑大量的 Web 站点。

httpd 服务支持的虚拟主机类型包括以下三种。

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

二、 基于域名的虚拟主机

2.1 构建虚拟主机步骤

  1. 为虚拟主机提供域名解析
    首先需要 DNS 服务,以便访问其中任何一 个虚拟 Web 站点时,最终访问的都是同一个 IP 地址。
  2. 为虚拟主机准备网页文档
    为每个虚拟 Web 主机不同内容的首页文件。
  3. 添加虚拟主机配置
    自己新建一个虚拟主机配置文件,并在主配置文件中指明虚拟主机配置文件。
  4. 在客户机中访问虚拟 Web 主机
    在一台win10客户机中检验虚拟主机的结果

2.2 构建过程

2.2.1 配置DNS服务器

[root@localhost ~]# yum install httpd bind -y
[root@localhost ~]# vim /etc/named.conf   ##修改DNS主配置文件

在这里插入图片描述

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

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

在这里插入图片描述

[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost benet.com.zone
$TTL 1D
@       IN SOA  benet.com. rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      benet.com.
        A       127.0.0.1
www IN  A       14.0.0.14
[root@localhost named]# cp -p benet.com.zone benet01.com.zone    ##因为是不同域名解析同一个IP地址,所以区域数据配置文件是一样的
[root@localhost named]# setenforce 0
[root@localhost named]# iptables -F
[root@localhost named]# systemctl start named

在这里插入图片描述
接下来在win10中进行测试DNS是否能够解析,在win10虚拟机中要将DNS地址设置为14.0.0.14
在这里插入图片描述

2.2.2 虚拟主机配置文件

[root@localhost named]# cd /etc/httpd/conf
[root@localhost conf]# mkdir extra
[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 *:80>
   DocumentRoot "/var/www/html/benet01"
   ServerName www.benet01.com
   ErrorLog "logs/www.benet01.com.error_log"
   CustomLog "logs/www.benet01.com.access_log" common
   <Directory "/var/www/html">
      Require all granted
   </Directory>
</VirtualHost>
[root@localhost extra]# cd /var/www/html/
[root@localhost html]# mkdir benet benet01   ##为虚拟主机创建站点
[root@localhost html]# ls
benet  benet01
[root@localhost html]# cd benet
[root@localhost benet]# vim index.html    ##为benet创建一个网站首页
<h1>this is benet web </h1>
[root@localhost benet]# cd ../benet01/
[root@localhost benet01]# vim index.html   ##为benet01创建一个网站首页
<h1>this is benet01 web</h1>
[root@localhost benet01]# vim /etc/httpd/conf/httpd.conf
Listen 14.0.0.14:80   ##监听端口改为80
Include conf/extra/vhost.conf   ##在主配置文件中指明虚拟主机的配置文件
[root@localhost benet01]# systemctl restart httpd

接下来在win10中进行测试
在这里插入图片描述

三、 基于端口的虚拟主机

基于端口的虚拟主机通常只用于同一个 Web 站点,其针对的网站名称、IP地址往 往是相同的,但通过不同的 TCP 端口来提供访问不同网页内容的服务入口。通过多个 Listen 配置项来指定要监听的 TCP 端口号,每个虚拟 Web 主机的 VHost 配置中应同时指定 IP地址和端口号。

[root@localhost benet01]# vim /etc/httpd/conf/extra/vhost.conf   ##在之前基础域名的虚拟主机配置文件中加入以下内容
<VirtualHost *:8080>
   DocumentRoot "/var/www/html/benet02"
   ServerName www.benet02.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 benet01]# cd /var/www/html/
[root@localhost html]# ls
benet  benet01
[root@localhost html]# mkdir benet02
[root@localhost html]# cd benet02
[root@localhost benet02]# vim index.html   ##为benet02创建一个网页首页
<h1>this is benet02 web</h1>
[root@localhost benet02]# vim /etc/httpd/conf/httpd.conf 
[root@localhost benet02]# systemctl restart httpd

在这里插入图片描述
在win10中进行测试
在这里插入图片描述

四、 基于IP地址的虚拟主机

基础IP地址的要把域名给去掉,其余的设置与上面的两种类似
[root@localhost ~]# cd /etc/httpd/conf/extra  
[root@localhost extra]# vim vhost.conf 
<VirtualHost 14.0.0.14:80>
   DocumentRoot "/var/www/html/benet"
   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 14.0.0.110:80>
   DocumentRoot "/var/www/html/benet03"
   ErrorLog "logs/www.benet03.com.error_log"
   CustomLog "logs/www.benet03.com.access_log" common
   <Directory "/var/www/html">
      Require all granted
   </Directory>
</VirtualHost>
[root@localhost extra]# mkdir /var/www/html/benet03   ##创建benet03的站点目录
[root@localhost extra]# vim /var/www/html/benet03/index.html    ##创建一个网页首页
<h1>this is benet03 web</h1>
[root@localhost extra]# vim /etc/httpd/conf/httpd.conf

在这里插入图片描述

[root@localhost extra]# systemctl restart httpd

在win10中进行测试
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/kimowinter/article/details/107795442