文章目录
一、Apache虚拟主机
1、虚拟web主机概述
在同一台服务器中运行多个web站点,其中每一个站点并不独立占用一台真正的计算机
通过虚拟web主机可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本
使用httpd可以非常方便的构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点
2、httpd支持的虚拟主机类型
基于域名
为每个虚拟主机使用不同的域名,但是其对应的IP地址使相同的
域名不同–IP相同,端口相同
基于域名是最为普遍的虚拟web主机类型
基于IP地址
为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同
这种方式需要为服务器配备多个网络接口,因此应用不是很广泛
IP不同,端口相同
基于端口
这种方式并不使用域名,IP地址来区分不同的站点内容,而是使用不同的TCP端口号
因此用户在浏览不同的虚拟站点时需要同时制定端口号才能访问
IP相同,端口不同
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.custom_log" common '//指定访问日志路径'
6 <Directory> "/var/www/html">
7 Require all granted '//设置网页允许所有主机访问,也可以通过denied设置拒绝访问'
8 </Directory>
9 </VirtualHost>
4、生产环境中虚拟主机概述
生产环境中,服务器不止两台
每台服务器都有虚拟主机对应各自的网站
通过调度服务器调取服务器中的网站资源
二、构建虚拟主机–基于域名实例演示
VMware软件
一台Windows虚拟机,IP地址为192.168.110.3
一台centos7虚拟机,IP地址为192.168.110.132
centos7安装bind和httpd服务
实验目的
在Windows虚拟机浏览器中访问这两个域名时,分别显示不同的内容
1、下载需要的软件包
[root@localhost ~]# yum install bind httpd -y
2、为虚拟主机提供域名解析
关闭防火墙,核心防护,编辑主配置文件
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/named.conf
...省略内容
options {
listen-on port 53 { any; }; '//修改为any'
listen-on-v6 port 53 { ::1; };
...省略内容
allow-query { any; }; '//修改为any'
...省略内容
编辑区域配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
'//添加一下两端内容'
...省略内容
zone "shang.com" IN {
type master;
file "shang.com.zone";
allow-update { none; };
};
zone "zhen.com" IN {
type master;
file "zhen.com.zone";
allow-update { none; };
};
...省略内容
编辑区域数据文件
[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 shang.com.zone
[root@localhost named]# vim shang.com.zone
...省略内容
'//末尾添加内容'
www IN A 192.168.110.132
[root@localhost named]# cp -p shang.com.zone zhen.com.zone
开启DNS域名服务
[root@localhost named]# systemctl start named
3、打开win10 看一下解析是否成功
4、 配置httpd服务
创建站点,并添加虚拟主机配置
[root@localhost named]# cd /etc/httpd/conf
[root@localhost conf]# ls
httpd.conf magic
[root@localhost conf]# mkdir qwer
[root@localhost conf]# ls
qwer httpd.conf magic
[root@localhost conf]# cd qwer
[root@localhost baobao]# ls
[root@localhost baobao]# vim vhost.conf
1 <VirtualHost *:80>
2 DocumentRoot "/var/www/html/shang"
3 ServerName www.shang.com
4 Errorlog "logs/www.shang.com.error_log"
5 Customlog "logs/www.shang.com.custom_log" common
6 <Directory> "/var/www/html">
7 Require all granted
8 </Directory>
9 </VirtualHost>
10
11 <VirtualHost *:80>
12 DocumentRoot "/var/www/html/zhen"
13 ServerName www.zhen.com
14 Errorlog "logs/www.zhen.com.error_log"
15 Customlog "logs/www.zhen.com.custom_log" common
16 <Directory> "/var/www/html">
17 Require all granted
18 </Directory>
19 </VirtualHost>
编辑虚拟机网页文档
[root@localhost baobao]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# mkdir shang zhen
[root@localhost html]# ls
shang zhen
[root@localhost html]# cd shang
[root@localhost html]# vim index.html
<h1>this is shang web</h1>
同理 zhen的网页是<h1>this is zhen web</h1>
编辑httpd主配置文件,添加虚拟主机站点
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
'//找到此行'
IncludeOptional conf.d/*.conf
Include conf/qwer/vhost.conf '//添加此行内容'
开启httpd服务,并测试
[root@localhost html]# systemctl start httpd
三、构建虚拟主机–基于端口实例演示
实例目的
在浏览器中访问不同端口,显示不同内容
1、配置httpd服务
配置虚拟主机配置
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# systemctl start httpd
[root@localhost html]# cd /etc/httpd/conf
[root@localhost conf]# ls
qwer httpd.conf magic
[root@localhost conf]# cd qwer
[root@localhost baobao]# ls
vhost.conf
[root@localhost baobao]# vim vhost.conf
'//在第二个主机配置后添加80'
<VirtualHost *:8080> '//多写一个80'
2、设置监听地址
[root@localhost baobao]# vim /etc/httpd/conf/httpd.conf
Listen 192.168.197.141:80
Listen 192.168.197.141:8080 '//找到监听地址,开启IPv4监听,设置监听地址,添加一个8080端口的监听地址'
#Listen 80 '//关闭IPv6监听'
3、重启服务
[root@localhost baobao]# systemctl restart httpd.service
4、测试
四、构建虚拟主机–基于不同IP实例演示
1、环境准备
继承以上实验环境
centos虚拟主机新添加一张网卡
编辑另一个网卡为192.168.110.200
2、实例目的
在浏览器访问两个IP时,分别显示不同的内容
3、配置httpd服务
虚拟主机配置
[root@localhost sahng]# vim vhost.conf
<VirtualHost 192.168.110.132:80> '//将*修改为第一张网卡IP地址'
<VirtualHost 192.168.110.200:80> '//将*修改为第二张网卡IP地址'
'//将他们的域名都注释掉'
设置监听地址
[root@localhost shang]# vim /etc/httpd/conf/httpd.conf
...省略内容
Listen 192.168.110.132:80
Listen 192.168.110.200:80
#Listen 80
...省略内容
重启服务,验证
[root@localhost shang]# systemctl restart httpd
4、验证