文章目录
一、Apache虚拟主机1、虚拟web主机概述2、httpd支持的虚拟主机类型3、添加虚拟主机配置格式4、生产环境中虚拟主机概述二、构建虚拟主机–基于域名实例演示1、下载需要的软件包2、为虚拟主机提供域名解析3、打开win10 看一下解析是否成功4、 配置httpd服务三、构建虚拟主机–基于端口实例演示1、配置httpd服务2、设置监听地址3、重启服务4、测试四、构建虚拟主机–基于不同IP实例演示1、环境准备2、实例目的3、配置httpd服务4、验证一、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.conf1 <VirtualHost *:80>'//针对本服务器所有IP地址'2 DocumentRoot "/var/www/html/xxx"'//指定站点目录'3 ServerName '//指定域名'4 Errorlog "logs/.error_log"'//指定错误日志路径'5 Customlog "logs/.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 "" IN {type master;file ".zone";allow-update {none; };};zone "" IN {type master;file ".zone";allow-update {none; };};...省略内容
编辑区域数据文件
[root@localhost ~]# cd /var/named/[root@localhost named]# lsdata dynamic named.ca named.empty named.localhost named.loopback slaves[root@localhost named]# cp -p named.localhost .zone[root@localhost named]# vim .zone ...省略内容'//末尾添加内容'www IN A 192.168.110.132[root@localhost named]# cp -p .zone .zone
开启DNS域名服务
[root@localhost named]# systemctl start named
3、打开win10 看一下解析是否成功
4、 配置httpd服务
创建站点,并添加虚拟主机配置[root@localhost named]# cd /etc/httpd/conf[root@localhost conf]# lshttpd.conf magic[root@localhost conf]# mkdir qwer[root@localhost conf]# lsqwer httpd.conf magic[root@localhost conf]# cd qwer[root@localhost baobao]# ls[root@localhost baobao]# vim vhost.conf1 <VirtualHost *:80>2 DocumentRoot "/var/www/html/shang"3 ServerName 4 Errorlog "logs/.error_log"5 Customlog "logs/.custom_log" common6 <Directory> "/var/www/html">7 Require all granted8 </Directory>9 </VirtualHost>10 11 <VirtualHost *:80>12 DocumentRoot "/var/www/html/zhen"13 ServerName 14 Errorlog "logs/.error_log"15 Customlog "logs/.custom_log" common16 <Directory> "/var/www/html">17 Require all granted18 </Directory>19 </VirtualHost>
编辑虚拟机网页文档
[root@localhost baobao]# cd /var/www/html/[root@localhost html]# ls[root@localhost html]# mkdir shang zhen[root@localhost html]# lsshang 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/*.confInclude 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]# lsqwer httpd.conf magic[root@localhost conf]# cd qwer[root@localhost baobao]# lsvhost.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:80Listen 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:80Listen 192.168.110.200:80#Listen 80...省略内容
重启服务,验证
[root@localhost shang]# systemctl restart httpd