构建虚拟Web主机|Apache、DNS

China☆狼群 提交于 2019-12-18 01:37:23

前言:虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中的每一个站点实际上并不独自占用整个服务器,因此被称为“虚拟”Web主机。通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
使用httpd可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。httpd支持的虚拟主机类型包括以下三种。
1.基于IP地址:在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。
2.基于端口:一个IP地址,通过不同的端口实在不同网站的访问。
3.基于域名:设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
下面将这三种方法一一介绍。

一.基于域名的虚拟主机

1.为虚拟主机提供域名解析

[root@localhost ~]# yum install bind httpd -y   //安装软件包
[root@localhost ~]# vim /etc/named.conf         //更改全局配置
 listen-on port 53 { any; };
 ........
 allow-query     { any; };
[root@localhost ~]# vim /etc/named.rfc1912.zones   //更改区域配置文件
zone "csdn.com" IN {
        type master;
        file "csdn.com.zone";
        allow-update { none; };
};
zone "chang.com" IN {
        type master;
        file "chang.com.zone";
        allow-update { none; };
};

[root@localhost ~]# cd /var/named                
[root@localhost named]# cp -p named.localhost csdn.com.zone
       //复制域名配置文件并创建一个新的
[root@localhost named]# vim csdn.com.zone   //更改域名配置
www IN  A       192.168.9.150
[root@localhost named]# cp -p csdn.com.zone chang.com.zone
     //再复制一份
[root@localhost named]# systemctl start named      //开启服务
[root@localhost named]# systemctl stop firewall-scripts  //关闭防火墙
[root@localhost named]# setenforce 0

更改Web虚拟主机网路配置
在这里插入图片描述
用nslookup命令查看
在这里插入图片描述

2.添加虚拟主机配置

[root@localhost ~]# cd /etc/httpd/conf
[root@localhost conf]# mkdir csdn1                         //创建一个子配置文件目录
[root@localhost conf]# cd csdn1/ 
[root@localhost csdn1]# vim csdn.conf                      //创建一个子配置文件
<VirtualHost *:80>                                         //所有经过80端口访问的ip
        DocumentRoot "/var/www/html/csdn"               //站点目录
        ServerName www.csdn.com                            //域名
        ErrorLog "logs/www.csdn.com.error_log"             //错误日志
        CustomLog "logs/www.csdn.com.access_log" common    //访问日志
        <Directory "var/www/html">                         //允许访问
           Require all granted                             //设置网页文件允许所有主机访问
        </Directory>
   </VirtualHost>

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

3.为虚拟主机准备网页文档

[root@localhost csdn1]# cd /var/www/html/
[root@localhost html]# mkdir csdn chang
[root@localhost html]# ls
chang  csdn                            //创建两个默认网站目录
[root@localhost html]# echo "this is csdn" > csdn/index.html
[root@localhost html]# echo "this is chang" > chang/index.html   输入两条信息
[root@localhost html]# cd /etc/httpd/conf
[root@localhost conf]# vim httpd.conf            //更改监听地址与指向子配置文件
 41 Listen 192.168.9.150:80
 42 #Listen 80
353 Include conf/csdn1/csdn.conf
[root@localhost conf]# systemctl restart httpd   //重启服务

4.在客户机中访问虚拟Web主机

访问www.csdn.com
在这里插入图片描述
访问www.chang.com
在这里插入图片描述

二.基于端口的虚拟主机

1.更改虚拟主机配置

[root@localhost ~]# cd /etc/httpd/conf/csdn1/             //进入子配置文件
[root@localhost csdn1]# ls
csdn.conf
[root@localhost csdn1]# vim csdn.conf                     //更改配置文件
<VirtualHost *:80>
        DocumentRoot "/var/www/html/csdn"
    #    ServerName www.csdn.com                   //将域名注释掉
        ErrorLog "logs/www.csdn.com.error_log"
        CustomLog "logs/www.csdn.com.access_log" common
           <Directory "var/www/html">
           Require all granted
        </Directory>
   </VirtualHost>

<VirtualHost *:8080>                         //直接更改端口
        DocumentRoot "/var/www/html/chang"
 #       ServerName www.chang.com                 //将域名注释掉
        ErrorLog "logs/www.chang.com.error_log"
        CustomLog "logs/www.chang.com.access_log" common
        <Directory "var/www/html">
           Require all granted
        </Directory>
    </VirtualHost>
[root@localhost csdn1]# cd /etc/httpd/conf           //进入Apcahe配置文件目录
[root@localhost conf]# ls
csdn1  httpd.conf  magic
[root@localhost conf]# vim httpd.conf              //进入配置文件,添加监听地址
 41 Listen 192.168.9.153:80
 42 Listen 192.168.9.153:8080                //添加一个8080端口
 43 #Listen 80
 [root@localhost conf]# systemctl restart httpd    //重启服务

2.在客户集中访问虚拟Web主机

访问192.168.9.153:80端口
在这里插入图片描述
访问192.168.9.153:8080端口
在这里插入图片描述

三.基于IP地址的虚拟主机

首先先添加一块网卡
在这里插入图片描述
在这里插入图片描述

1.更改虚拟主机配置

[root@localhost conf]# cd /var/www/html/              //重新创建一个站点并输入信息
[root@localhost html]# ls
chang  csdn
[root@localhost html]# mkdir csdn01
[root@localhost html]# echo "this is csdn01" > csdn01/index.html      
[root@localhost html]# vim /etc/named.rfc1912.zones     //重新更改域名
zone "csdn.com" IN {
        type master;
        file "csdn.com.zone";
        allow-update { none; };
};

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

[root@localhost html]# cd /var/named/           //创建一个新的域名并添加IP地址
[root@localhost named]# cp -p csdn.com.zone csdn01.com.zone    //保留权限复制
[root@localhost named]# ls
chang.com.zone   csdn.com.zone  dynamic   named.empty      named.loopback
csdn01.com.zone  data           named.ca  named.localhost  slaves
[root@localhost named]# vim csdn01.com.zone 
www IN  A       192.168.9.149
[root@localhost ~]# cd /etc/httpd/conf/csdn1/          //进入子配置文件目录
[root@localhost csdn1]# ls
csdn.conf
[root@localhost csdn1]# vim csdn.conf                  //进入子配置文件并作更改
<VirtualHost 192.168.9.153:80>                         //第一个IP用ens33网卡 访问
        DocumentRoot "/var/www/html/csdn"
        ServerName www.csdn.com                     
        ErrorLog "logs/www.csdn.com.error_log"
        CustomLog "logs/www.csdn.com.access_log" common
           <Directory "var/www/html">
           Require all granted
        </Directory>
   </VirtualHost>

<VirtualHost 192.168.9.149:80>                        //第二个IP用ens36网卡访问
        DocumentRoot "/var/www/html/csdn01"           //更改站点名称
        ServerName www.csdn01.com
        ErrorLog "logs/www.csdn01.com.error_log"
        CustomLog "logs/www.csnd01.com.access_log" common
        <Directory "var/www/html">
           Require all granted
        </Directory>
    </VirtualHost> 
[root@localhost conf]# vim httpd.conf                 //更改监听地址
 41 Listen 192.168.9.153:80
 42 Listen 192.168.9.149:80
 43 #Listen 80
[root@localhost named]# systemctl restart named       //重启服务

2.在客户集中访问虚拟Web主机

访问IP192.168.9.153
在这里插入图片描述
访问IP192.168.9.149
在这里插入图片描述
总结:在上述几种虚拟Web主机中,基于域名的虚拟主机是使用最为广泛的。关于另外两种类型的虚拟主机,只介绍了配置要点。另外,因不同类型的虚拟主机其区分机制各不相同,建议不要同时使用,以免互相混淆。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!