构建虚拟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