web网站部署与优化--虚拟主机的构建实操

本文详细介绍了如何在Linux服务器上配置虚拟主机,包括基于域名、端口和IP地址的三种方式。首先,通过DNS服务器配置实现域名解析,然后创建虚拟主机配置文件,分配不同的DocumentRoot,最后通过httpd服务管理这些虚拟站点。测试阶段,从Win10客户端验证了域名解析和虚拟主机的访问效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 虚拟主机概述

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

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

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

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

2.1 构建虚拟主机步骤

为虚拟主机提供域名解析
首先需要 DNS 服务,以便访问其中任何一 个虚拟 Web 站点时,最终访问的都是同一个 IP 地址。
为虚拟主机准备网页文档
为每个虚拟 Web 主机不同内容的首页文件。
添加虚拟主机配置
自己新建一个虚拟主机配置文件,并在主配置文件中指明虚拟主机配置文件。
在客户机中访问虚拟 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
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值