一、虚拟Web主机概述
- 在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机机
- 通过虚拟web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本
httpd支持的虚拟主机类型
- 基于域名的虚拟主机
- 为每个虚拟主机使用不同的域名,但是其对应的IP地址使相同的
- 域名不同–IP相同,端口相同
- 基于域名是最为普遍的虚拟web主机类型
- 基于IP地址的虚拟主机
- 为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同
- 这种方式需要为服务器配备多个网络接口,因此应用不是很广泛
- IP不同,端口相同
- 基于端口的虚拟主机
- 这种方式并不使用域名,IP地址来区分不同的站点内容,而是使用不同的TCP端口号
- 因此用户在浏览不同的虚拟站点时需要同时制定端口号才能访问
- IP相同,端口不同
二、基于域名构建虚拟主机
- 构建2个虚拟Web站点
- www.yyc.com,IP地址为14.0.0.41
- www.benet.com,IP地址为14.0.0.41
- 在浏览器中访问这两个域名时,分别显示不同的内容
【1】安装httpd服务和DNS域名解析服务
[root@localhost named]# iptables -F
[root@localhost named]# setenforce 0
[root@localhost ~]# yum install httpd bind -y
【2】修改DNS主配置文件
[root@localhost ~]# vim /etc/named.conf '修改主配置文件'
options {
listen-on port 53 { any; }; '改为any'
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; }; '改为any'
【3】修改DNS区域配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones '修改区域配置文件'
zone "yyc.com" IN {
type master;
file "yyc.com.zone";
allow-update { none; };
};
zone "benet.com" IN {
type master;
file "benet.com.zone";
allow-update { none; };
};
【4】添加区域数据配置文件
[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# cp -p named.localhost yyc.com.zone
[root@localhost named]# vim yyc.com.zone ###修改区域数据配置文件
NS @
A 127.0.0.1
www IN A 14.0.0.41 '添加解析记录'
[root@localhost named]# cp -p yyc.com.zone benet.com.zone '此时不需要修改,因为现在做的是基于不同域名访问不同网站,解析的是同一个地址'
开启域名解析服务并测试
[root@localhost named]# systemctl start named
【5】配置httpdf服务,添加虚拟主机配置文件
[root@localhost conf]# cd /etc/httpd/conf/ '进入主配置文件目录'
[root@localhost conf]# ls
httpd.conf magic
[root@localhost conf]# mkdir extra '在主配置文件的同目录下创建一个目录extra'
[root@localhost conf]# ls
extra httpd.conf magic
[root@localhost conf]# cd extra/
[root@localhost extra]# ls
[root@localhost extra]# vim vhost.conf '建立一个文件vhost.conf,需要自己写'
<VirtualHost *:80>
DocumentRoot "/var/www/html/yyc"
ServerName www.yyc.com
ErrorLog "logs/www.yyc.com.error_log"
CustomLog "logs/www.yyc.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@localhost extra]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# mkdir yyc benet
[root@localhost html]# ls
benet yyc
[root@localhost html]# cd yyc/
[root@localhost yyc]# vim index.html
<h1>this is yyc web</h1>
[root@localhost yyc]# cd ../benet
[root@localhost benet]# vim index.html
<h1>this is benet web</h1>
【7】修改http配置文件
[root@localhost benet]# cd /etc/httpd/conf
[root@localhost conf]# ls
extra httpd.conf magic
[root@localhost conf]# cd extra/
[root@localhost extra]# ls
vhost.conf
[root@localhost extra]# vim /etc/httpd/conf/httpd.conf
Include conf/extra/vhost.conf '末尾加一行'
[root@localhost extra]# systemctl restart httpd
【8】网页验证
三、基于端口构建虚拟主机
- 构建两个虚拟Web站点
- www.benet.com,IP地址、端口号为14.0.0.41:80
- www.benet.com,IP地址、端口号为14.0.0.41:8080
在上面基于域名的基础上
修改虚拟主机配置文件
'修改虚拟主机配置文件'
[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 *:8080> '##改端口号为8080'
DocumentRoot "/var/www/html/benet02"
ServerName www.benet.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 extra]# mkdir /var/www/html/benet02
[root@localhost extra]# vim /var/www/html/benet02/index.html
<h1>this is benet02 web</h1>
修改http主配置文件
[root@localhost extra]# vim /etc/httpd/conf/httpd.conf '在主配置文件中多开一个监听端口'
Listen 14.0.0.41:80
Listen 14.0.0.41:8080
#Listen 80
重启httpd服务,并查看服务状态
[root@localhost extra]# systemctl restart httpd.service
[root@localhost extra]# netstat -ntap | grep httpd
tcp 0 0 14.0.0.41:8080 0.0.0.0:* LISTEN 71894/httpd
tcp 0 0 14.0.0.41:80 0.0.0.0:* LISTEN 71894/httpd
网页验证
三、基于IP地址构建虚拟主机
- 构建2个虚拟Web站点
- www.yyc.com,IP地址为14.0.0.41
- www.yyc02.com,IP地址为14.0.0.51
- 在浏览器中访问这两个IP时,分别显示不同的内容
仍然在上面基于端口的基础上
修改虚拟主机配置文件
[root@localhost extra]# vim vhost.conf
1 <VirtualHost 14.0.0.41:80>
2 DocumentRoot "/var/www/html/yyc"
3 ErrorLog "logs/www.yyc.com.error_log"
4 CustomLog "logs/www.yyc.com.access_log" common
5 <Directory "/var/www/html">
6 Require all granted
7 </Directory>
8 </VirtualHost>
9
10 <VirtualHost 14.0.0.51:80>
11 DocumentRoot "/var/www/html/yyc02"
12 ErrorLog "logs/www.yyc02.com.error_log"
13 CustomLog "logs/www.yyc02.com.access_log" common
14 <Directory "/var/www/html">
15 Require all granted
16 </Directory>
17 </VirtualHost>
添加站点网页文件
[root@localhost extra]# mkdir /var/www/html/yyc02
[root@localhost extra]# vim /var/www/html/yyc02/index.html
<h1>this is yyc02 web</h1>
修改http主配置文件
[root@localhost extra]# vim /etc/httpd/conf/httpd.conf
Listen 14.0.0.41:80
Listen 14.0.0.51:80
#Listen 80
重启httpd服务,并查看服务状态
[root@localhost extra]# netstat -ntap | grep httpd
tcp 0 0 14.0.0.51:80 0.0.0.0:* LISTEN 73397/httpd
tcp 0 0 14.0.0.41:80 0.0.0.0:* LISTEN 73397/httpd
网页验证
实验完成