一、虚拟主机简介
构建虚拟web主机
虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为 “虚拟” Web主机。
通过虚拟 Web 主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
httpd服务支持的虚拟主机类型包括以下三种:
使用 httpd 可以非常方便地构建虚拟主机服务器,只需要运行一个 httpd 服务就能够同
时支撑大量的 Web 站点。httpd 支持的虚拟主机类型包括以下三种。
- 基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。
-例如,www.51xit.top 和www.52xit.top 站点的 IP 地址都是 192.168.100.41。这 是使用最为普遍的虚拟 Web 主机类型。 - 基于 IP 地址:为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。(安全)
- 基于端口:这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用 了不同的TCP端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才 能访问。
进行项目前,需安装Apahce服务器。
二、基于域名主机
2.1、客户机需要添加两个记录信息,将多个不同的域名指向同一个IP地址
2.2、添加虚拟主机准备网页文档配置
[root@server1 ~]# mkdir /opt/aa
[root@server1 ~]# mkdir /opt/ab
[root@server1 ~]# cd /opt/aa
[root@server1 aa]# vi index.html
[root@server1 aa]# cp index.html /opt/ab
[root@server1 aa]# cd /opt/ab
[root@server1 ab]# vi index.html
<html><body><h1>this is a server aa</h1></body></html>
<html><body><h1>this is a server ab</h1></body></html>
2.3、启用vhosts配置文件
[root@server1 ~]#vi /etc/httpd.conf
2.4 创建独立的配置文件
[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80> #设置 aa 虚拟站点区域
ServerAdmin webmaster@aa.com
DocumentRoot "/opt/aa"
ServerName www.aa.com
ErrorLog "logs/aa.com-error_log"
CustomLog "logs/aa.com-access_log" common
</VirtualHost>
<Directory "/opt/aa">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
<VirtualHost *:80> #设置 ab 虚拟站点区域
ServerAdmin webmaster@ab.com
DocumentRoot "/opt/ab"
ServerName www.ab.com
ErrorLog "logs/ab.com-error_log"
CustomLog "logs/ab.com-access_log" common
</VirtualHost>
<Directory "/opt/ab">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
2.5 映射域名
[root@server1 ~]# vi /etc/hosts
2.6 重启服务
[root@server1 ~]# systemctl restart httpd
[root@server1 ~]# netstat -anpt | grep 80
在浏览器上
http://www.aa.com
http://www.ab.com
三、基于 IP 地址的虚拟主机
3.1 准备好两张网卡,设置不同的IP,
加一个网卡,或是加一个虚拟地址
3.2 分别为不同的虚拟主机设置不同的测试页
[root@server1 ~]# ifconfig ens33:1 192.168.50.11/24 #加的虚拟ip
[root@server1 ~]# ip addr
inet 192.168.50.11/24 brd 192.168.50.255 scope global ens33:1
[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
[root@server1 ~]# systemctl restart httpd
3.3 做捆绑,修改虚拟机的配置文件,添加修改ip的地址
<VirtualHost 192.168.40.11:80> #设置 aa 虚拟站点区域
<VirtualHost 192.168.50.11:80> #设置 ab 虚拟站点区域
3.4 在浏览器上
输入:192.168.40.11
输入:192.168.50.11
四、基于端口号的虚拟主机
4.1 修改端口号
[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
4.2 修改主配置文件,增加监听端口
[root@server1 ~]# vi /etc/httpd.conf
4.3 重启服务
[root@server1 ~]# systemctl restart httpd
[root@server1 ~]# netstat -anpt | grep httpd
4.4 客户机中访问虚拟web主机
http://192.168.50.11:8080