文章目录
- 构建虚拟 web主机简介
- 1.基于域名
- 2.基于IP
- 3.基于端口
构建虚拟 web主机简介
虚拟 Web 主机指的是在同一台服务器中运行多个 Web 站点,其中的每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。通过虚拟 Web 主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
使用 httpd 可以非常方便地构建虚拟主机服务器,只需要运行一个 httpd 服务就能够同时支撑大量的 Web 站点。httpd 支持的虚拟主机类型包括以下三种。
●基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。例如,www.51xit.top 和 www.52xit.top 站点的 IP 地址都是 20.0.0.13。这是使用最为普遍的虚拟 Web 主机类型。
●基于 IP 地址:为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。(安全)
●基于端口:这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用了不同的TCP 端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问
1.基于域名
在试验环境中DNS需要修改下A记录,在本案中我们采用hosts映射的方式做域名解析
●为虚拟主机准备网页文档[root@www ~]# mkdir -p /opt/www/html/51xit.top
[root@www ~]# mkdir -p /opt/www/html/52xit.top
[root@www ~]# echo "<h1>www.51xit.top</h1>" > /opt/www/html/51xit.top/index.html
[root@www ~]# echo "<h1>www.52xit.top</h1>" > /opt/www/html/52xit.top/index.html●添加虚拟主机配置
[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>ServerAdmin admin@51xit.topDocumentRoot "/opt/www/html/51xit.top"ServerName www.51xit.topErrorLog "logs/www.51xit.top.error_log"CustomLog "logs/www.51xit.top.access_log" common<Directory "/opt/www/html">Require all granted</Directory>
</VirtualHost><VirtualHost *:80>ServerAdmin admin@52xit.topDocumentRoot "/opt/www/html/52xit.top"ServerName www.52xit.topErrorLog "logs/www.52xit.top.error_log"CustomLog "logs/www.52xit.top.access_log" common<Directory "/opt/www/html">Require all granted</Directory>
</VirtualHost>[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf
[root@www ~]# systemctl restart httpd ●验证
登录客户机访问www.51xit.top 在访问www.52xit.top
2.基于IP
主机上有2块网卡
VM1网卡:20.0.0.13
VM1网卡:20.0.0.14
添加另外一块网卡VM1,配置ens37网卡
[root@server ~]# nmcli connection
名称 UUID 类型 设备
ens33 98fe6f53-9800-433f-89ef-cf51f0b3ae70 802-3-ethernet ens33
virbr0 733a1781-acc6-4002-b9bc-e287bcef8613 bridge virbr0
有线连接 1 37d1dea9-83fe-3f64-8bf1-6c844ca846eb 802-3-ethernet ens37
[root@localhost 51xit.top]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@localhost network-scripts]# vi ifcfg-ens37
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=20.0.0.14
NETMASK=255.255.255.0
GATEWAY=20.0.0.2
DNS=20.0.0.2
DEFROUT=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
UUID=37d1dea9-83fe-3f64-8bf1-6c844ca846eb
DEVICE=ens37
ONBOOT=yes[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifdown ens37
[root@localhost network-scripts]# ifup ens37[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf<VirtualHost 20.0.0.13:80> ####设置 51xit.top 虚拟站点区域
DocumentRoot "/opt/www/html/51xit.top"
ServerName www.51xit.top
......
</VirtualHost><VirtualHost 20.0.0.14:80> ####设置 52xit.top 虚拟站点区域
DocumentRoot "/opt/www/html/52xit.top"
ServerName www.52xit.top
......
</VirtualHost>[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf ####加载独立的配置文件[root@www ~]# systemctl restart httpd ####重启服务使新配置生效 ####验证####
更改客户机hosts映射关系
20.0.0.13 www.51xit.top
20.0.0.14 www.52xit.top登录客户机访问20.0.0.13 在访问20.0.0.14
3.基于端口
[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 20.0.0.13:80> ####设置 51xit.top 虚拟站点区域
DocumentRoot "/opt/www/html/51xit.top"
ServerName www.51xit.top</VirtualHost>
<VirtualHost 20.0.0.14:8080> ####设置 52xit.top 虚拟站点区域
DocumentRoot "/opt/www/html/52xit.top"
ServerName www.52xit.top</VirtualHost>[root@www ~]# vi /usr/local/httpd/conf/httpd.conf ####省略部分内容
Include conf/extra/httpd-vhosts.conf ####加载独立的配置文件
Listen 20.0.0.13:80 ####监听 80 端口
Listen 20.0.0.14:8080 ####监听 8080 端口[root@www ~]# systemctl restart httpd ####重启服务使新配置生效
####验证####
更改客户机hosts映射关系
20.0.0.13 www.51xit.top
20.0.0.14 www.52xit.top登录客户机访问20.0.0.13:80 在访问20.0.0.14:8080