企业平台架构--构建虚拟主机(基于域名,基于端口,基于ip)三种实例配置
一:构建虚拟主机
1.1:虚拟主机概述
- 在同一台服务器中运行多个web站点,其中每一个站点并不独立占用一台真正的计算机
- 通过虚拟web主机可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本
- 使用httpd可以非常方便的构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点
1.2:httpd支持的虚拟主机类型
- 基于域名
- 为每个虚拟主机使用不同的域名,但是其对应的IP地址使相同的
- 域名不同–IP相同,端口相同
- 基于域名是最为普遍的虚拟web主机类型
- 基于IP地址
- 为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同
- 这种方式需要为服务器配备多个网络接口,因此应用不是很广泛
- IP不同,端口相同
- 基于端口
- 这种方式并不使用域名,IP地址来区分不同的站点内容,而是使用不同的TCP端口号
- 因此用户在浏览不同的虚拟站点时需要同时制定端口号才能访问
- IP相同,端口不同
1.3:添加虚拟主机配置格式
[root@localhost ~]# vim /etc/http/conf/xxx/vhost.conf
1 <VirtualHost *:80> '针对本服务器所有IP地址'
2 DocumentRoot "/var/www/html/xxx" '指定站点目录'
3 ServerName www.xxx.com '指定域名'
4 Errorlog "logs/www.xxx.com.error_log" '指定错误日志路径'
5 Customlog "logs/www.xxx.com.access_log" common '指定访问日志路径'
6 <Directory> "/var/www/html">
7 Require all granted '设置网页允许所有主机访问,也可以通过denied设置拒绝访问'
8 </Directory>
9 </VirtualHost>
1.4:构建虚拟主机–基于域名实例演示
1.4.1:实验环境
- VMware软件
- 一台Windows虚拟机,IP地址为20.0.0.50
- 一台centos7虚拟机,IP地址为20.0.0.47
- centos7安装bind和httpd服务
[root@localhost ~]# yum install bind httpd -y
1.4.2:实验目的
在Windows虚拟机浏览器中访问这两个域名时,分别显示不同的内容
1.4.3:为虚拟主机提供域名解析
- 关闭防火墙,修改httpd的主配置文件
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/named.conf
...省略内容
options {
listen-on port 53 { any; }; '修改为any'
...省略内容
allow-query { any; }; '修改为any'
...省略内容
- 编辑区域配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
'添加一下两端内容'
...省略内容
zone "kevin.com" IN {
type master;
file "kevin.com.zone";
allow-update { none; };
};
zone "benet.com" IN {
type master;
file "benet.com.zone";
allow-update { none; };
};
- 编辑区域数据文件
[root@localhost yum.repos.d]# cd /var/named/
[root@localhost named]# ls
data named.ca named.localhost slaves
dynamic named.empty named.loopback
[root@localhost named]# cp -p named.localhost kevin.com.zone
[root@localhost named]# vim kevin.com.zone
...省略内容
'删除最后一行,添加下面一行'
www IN A 20.0.0.47
[root@localhost named]# cp -p kevin.com.zone benet.com.zone
- 开启服务
[root@localhost named]# systemctl start named
- 测试
1.4.4:配置httpd服务
- 创建站点,并添加虚拟主机配置
[root@localhost named]# cd /etc/httpd/conf
[root@localhost conf]# ls
httpd.conf magic
[root@localhost conf]# mkdir extra
[root@localhost conf]# cd extra/
[root@localhost extra]# vim vhost.conf
<VirtualHost *:80>
DocumentRoot "/var/www/html/kevin"
ServerName www.kevin.com
Errorlog "logs/www.kevin.com.error_log"
CustomLog "logs/www.kevin.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>
- 编辑虚拟机网页文档
[root@localhost extra]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# vim benet/index.html
<h1>this is benet</h1>
[root@localhost html]# vim kgc/index.html
<h1>this is kevin</h1>
- 编辑httpd主配置文件,添加虚拟主机站点并开启httpd服务
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
Include conf/extra/vhost.conf
[root@localhost html]# systemctl start httpd
[root@localhost html]# iptables F
[root@localhost html]# setenforce 0
- 测试
1.5:构建虚拟主机–基于端口实例演示
1.5.1:环境准备
在上一个实验的环境下进行
1.5.2:实验目的
在浏览器中访问不同端口,显示不同内容
1.5.3:配置httpd服务
- 配置虚拟主机配置,并配置网页文档
[root@localhost html]# 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 vhost.conf
'添加以下内容,与上一个80端口做对比'
<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>
[root@localhost extra]# mkdir /var/www/html/benet01
[root@localhost extra]# vim /var/www/html/benet01/index.html
<h1>this is benet01</h1>
- 修改监听地址并重启httpd服务
[root@localhost extra]# vim /etc/httpd/conf/httpd.conf
Listen 20.0.0.47:80
Listen 20.0.0.47:8080 '找到监听地址,开启IPv4监听,设置监听地址,添加一个8080端口的监听地址'
#Listen 80 '关闭IPv6监听'
[root@localhost extra]# systemctl restart httpd.service
- 测试
1.6:构建虚拟主机–基于不同IP实例演示
1.6.1:环境准备
在上一个实验环境下进行,并添加一块网卡
- 修改第二张网卡信息
1.6.2:实验目的
- 在浏览器访问两个IP时,分别显示不同的内容
1.6.3:配置httpd服务
- 配置虚拟主机,并配置网页文档
[root@localhost extra]# vim vhost.conf
<VirtualHost 20.0.0.47:80>
DocumentRoot "/var/www/html/kevin"
Errorlog "logs/www.kevin.com.error_log"
CustomLog "logs/www.kevin.com.access_log" common
<Directory> "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 20.0.0.48:80>
DocumentRoot "/var/www/html/kevin01"
Errorlog "logs/www.kevin01.com.error_log"
CustomLog "logs/www.kevin01.com.access_log" common
<Directory> "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
[root@localhost extra]# mkdir /var/www/html/kevin01
[root@localhost extra]# vim /var/www/html/kevin01/index.html
<h1>this is kevin01</h1>
- 修改监听地址并重启httpd服务
[root@localhost extra]# vim /etc/httpd/conf/httpd.conf
Listen 20.0.0.47:80
Listen 20.0.0.48:80
#Listen 80
[root@localhost extra]# systemctl restart httpd.service
- 测试