Apache基于域名、基于端口、基于IP构建虚拟web主机

一、虚拟web主机简介

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

【1】基于域名

为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。例如,www.kgc.com和www.benet.com站点的IP地址都是192.168.60.10,这是使用最普遍的虚拟web主机类型。

【2】基于IP地址

为每个虚拟主机使用不同的域名,切各自对应的IP地址也不相同。这种方式需要为服务器配置多个网络接口,因此应用并不是特别广泛。

【3】基于端口

这种方式并不使用域名、IP地址来区分不同站点的内容,而是使用不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

二、基于域名的虚拟主机配置

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

[root@promote ~]# yum install -y httpd bind*

【2】修改DNS主配置文件

[root@promote ~]# vim /etc/named.conf
.................................
options {
    
    
        listen-on port 53 {
    
     any; };
省略部分.............
        allow-query     {
    
     any; };
.............................

【3】设置区域配置文件

[root@promote ~]# vim /etc/named.rfc1912.zones 
zone "kgc.com" IN {
    
    
        type master;
        file "kgc.com.zone";
        allow-update {
    
     none; };
};
zone "benet.com" IN {
    
    
        type master;
        file "benet.com.zone";
        allow-update {
    
     none; };
};

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

[root@promote ~]# cd /var/named/
[root@promote named]# cp -p named.localhost kgc.com.zone
[root@promote named]# vim kgc.com.zone 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.60.10
[root@promote named]# cp -p kgc.com.zone benet.com.zone

【5】添加虚拟主机配置文件

[root@promote ~]# cd /etc/httpd/conf/
[root@promote conf]# mkdir extra
[root@promote conf]# cd extra/
[root@promote extra]# vim vhost.conf
<VirtualHost *:80>
  DocumentRoot "/var/www/html/kgc"
  ServerName www.kgc.com
  ErrorLog "logs/www.kgc.com.error_log"
  CustomLog "logs/www.kgc.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@promote extra]# cd /var/www/html/
[root@promote html]# mkdir kgc
[root@promote html]# mkdir benet
[root@promote ~]# vim /var/www/html/kgc/index.html 
<h1>this is kgc web</h1>
[root@promote ~]# vim /var/www/html/benet/index.html 
<h1>this is benet web </h1>

【7】修改http配置文件

[root@promote ~]# vim /etc/httpd/conf/httpd.conf 
Listen 192.168.60.10:80
Include conf/extra/vhost.conf

【8】启动服务,验证

[root@promote ~]# systemctl start httpd
[root@promote ~]# systemctl start named

在这里插入图片描述
在这里插入图片描述

同一个IP地址,同一个端口号,根据域名的不同访问到的网页不同。

三、基于IP地址的虚拟主机配置

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

[root@promote ~]# yum install -y httpd bind*

【2】修改DNS主配置文件

[root@promote ~]# vim /etc/named.conf
.................................
options {
    
    
        listen-on port 53 {
    
     any; };
省略部分.............
        allow-query     {
    
     any; };
.............................

【3】设置区域配置文件

[root@promote ~]# vim /etc/named.rfc1912.zones 
zone "kgc.com" IN {
    
    
        type master;
        file "kgc.com.zone";
        allow-update {
    
     none; };
};
zone "benet.com" IN {
    
    
        type master;
        file "benet.com.zone";
        allow-update {
    
     none; };
};

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

[root@promote ~]# cd /var/named/
[root@promote named]# cp -p named.localhost kgc.com.zone
[root@promote named]# vim kgc.com.zone 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.60.10
[root@promote named]# cp -p kgc.com.zone benet.com.zone

【5】添加虚拟主机配置文件

[root@promote ~]# cd /etc/httpd/conf/
[root@promote conf]# mkdir extra
[root@promote conf]# cd extra/
[root@promote extra]# vim vhost.conf
<VirtualHost 192.168.60.10:80>
  DocumentRoot "/var/www/html/kgc"
  ServerName www.kgc.com
  ErrorLog "logs/www.kgc.com.error_log"
  CustomLog "logs/www.kgc.com.access_log" common
  <Directory "/var/www/html">
     Require all granted
  </Directory>
</VirtualHost>
<VirtualHost 192.168.60.60:80>
  DocumentRoot "/var/www/html/kgc01"
  ServerName www.kgc.com
  ErrorLog "logs/www.kgc01.com.error_log"
  CustomLog "logs/www.kgc01.com.access_log" common
  <Directory "/var/www/html">
     Require all granted
  </Directory>
</VirtualHost>

【6】添加站点网页文件

[root@promote extra]# cd /var/www/html/
[root@promote html]# mkdir kgc
[root@promote html]# mkdir kgc01
[root@promote ~]# vim /var/www/html/kgc/index.html 
<h1>this is kgc web</h1>
[root@promote ~]# vim /var/www/html/kgc01/index.html 
<h1>this is kgc01 web </h1>

【7】修改http配置文件

[root@promote ~]# vim /etc/httpd/conf/httpd.conf 
Listen 192.168.60.10:80
Listen 192.168.60.60:80
Include conf/extra/vhost.conf

【8】启动服务,验证

[root@promote ~]# systemctl start httpd
[root@promote ~]# systemctl start named

在这里插入图片描述
在这里插入图片描述

相同的域名和端口,根据不同的IP地址可以访问不同的网页。

四、基于端口的虚拟主机配置

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

[root@promote ~]# yum install -y httpd bind*

【2】修改DNS主配置文件

[root@promote ~]# vim /etc/named.conf
.................................
options {
    
    
        listen-on port 53 {
    
     any; };
省略部分.............
        allow-query     {
    
     any; };
.............................

【3】设置区域配置文件

[root@promote ~]# vim /etc/named.rfc1912.zones 
zone "kgc.com" IN {
    
    
        type master;
        file "kgc.com.zone";
        allow-update {
    
     none; };
};
zone "benet.com" IN {
    
    
        type master;
        file "benet.com.zone";
        allow-update {
    
     none; };
};

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

[root@promote ~]# cd /var/named/
[root@promote named]# cp -p named.localhost kgc.com.zone
[root@promote named]# vim kgc.com.zone 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.60.10
[root@promote named]# cp -p kgc.com.zone benet.com.zone

【5】添加虚拟主机配置文件

[root@promote ~]# cd /etc/httpd/conf/
[root@promote conf]# mkdir extra
[root@promote conf]# cd extra/
[root@promote 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>
  DocumentRoot "/var/www/html/benet01"
  ServerName www.benet.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>

【6】添加站点网页文件

[root@promote extra]# cd /var/www/html/
[root@promote html]# mkdir benet
[root@promote html]# mkdir benet01
[root@promote ~]# vim /var/www/html/benet/index.html 
<h1>this is benet web</h1>
[root@promote ~]# vim /var/www/html/benet01/index.html 
<h1>this is benet01 web </h1>

【7】修改http配置文件

[root@promote ~]# vim /etc/httpd/conf/httpd.conf 
Listen 192.168.60.10:80
Listen 192.168.60.10:8080
Include conf/extra/vhost.conf

【8】启动服务,验证

[root@promote ~]# systemctl start httpd
[root@promote ~]# systemctl start named

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Lihuihui006/article/details/110420304
今日推荐