前言:虚拟Web主机指的是在同一台服务器中运行多个Web站点,其中的每一个站点实际上并不独自占用整个服务器,因此被称为“虚拟”Web主机。通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
使用httpd可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的Web站点。httpd支持的虚拟主机类型包括以下三种。
1.基于IP地址:在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。
2.基于端口:一个IP地址,通过不同的端口实在不同网站的访问。
3.基于域名:设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
下面将这三种方法一一介绍。
文章目录
一.基于域名的虚拟主机
1.为虚拟主机提供域名解析
[root@localhost ~]# yum install bind httpd -y //安装软件包
[root@localhost ~]# vim /etc/named.conf //更改全局配置
listen-on port 53 { any; };
........
allow-query { any; };
[root@localhost ~]# vim /etc/named.rfc1912.zones //更改区域配置文件
zone "csdn.com" IN {
type master;
file "csdn.com.zone";
allow-update { none; };
};
zone "chang.com" IN {
type master;
file "chang.com.zone";
allow-update { none; };
};
[root@localhost ~]# cd /var/named
[root@localhost named]# cp -p named.localhost csdn.com.zone
//复制域名配置文件并创建一个新的
[root@localhost named]# vim csdn.com.zone //更改域名配置
www IN A 192.168.9.150
[root@localhost named]# cp -p csdn.com.zone chang.com.zone
//再复制一份
[root@localhost named]# systemctl start named //开启服务
[root@localhost named]# systemctl stop firewall-scripts //关闭防火墙
[root@localhost named]# setenforce 0
更改Web虚拟主机网路配置
用nslookup命令查看
2.添加虚拟主机配置
[root@localhost ~]# cd /etc/httpd/conf
[root@localhost conf]# mkdir csdn1 //创建一个子配置文件目录
[root@localhost conf]# cd csdn1/
[root@localhost csdn1]# vim csdn.conf //创建一个子配置文件
<VirtualHost *:80> //所有经过80端口访问的ip
DocumentRoot "/var/www/html/csdn" //站点目录
ServerName www.csdn.com //域名
ErrorLog "logs/www.csdn.com.error_log" //错误日志
CustomLog "logs/www.csdn.com.access_log" common //访问日志
<Directory "var/www/html"> //允许访问
Require all granted //设置网页文件允许所有主机访问
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html/chang"
ServerName www.chang.com
ErrorLog "logs/www.chang.com.error_log"
CustomLog "logs/www.chang.com.access_log" common
<Directory "var/www/html">
Require all granted
</Directory>
</VirtualHost>
3.为虚拟主机准备网页文档
[root@localhost csdn1]# cd /var/www/html/
[root@localhost html]# mkdir csdn chang
[root@localhost html]# ls
chang csdn //创建两个默认网站目录
[root@localhost html]# echo "this is csdn" > csdn/index.html
[root@localhost html]# echo "this is chang" > chang/index.html 输入两条信息
[root@localhost html]# cd /etc/httpd/conf
[root@localhost conf]# vim httpd.conf //更改监听地址与指向子配置文件
41 Listen 192.168.9.150:80
42 #Listen 80
353 Include conf/csdn1/csdn.conf
[root@localhost conf]# systemctl restart httpd //重启服务
4.在客户机中访问虚拟Web主机
访问www.csdn.com
访问www.chang.com
二.基于端口的虚拟主机
1.更改虚拟主机配置
[root@localhost ~]# cd /etc/httpd/conf/csdn1/ //进入子配置文件
[root@localhost csdn1]# ls
csdn.conf
[root@localhost csdn1]# vim csdn.conf //更改配置文件
<VirtualHost *:80>
DocumentRoot "/var/www/html/csdn"
# ServerName www.csdn.com //将域名注释掉
ErrorLog "logs/www.csdn.com.error_log"
CustomLog "logs/www.csdn.com.access_log" common
<Directory "var/www/html">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:8080> //直接更改端口
DocumentRoot "/var/www/html/chang"
# ServerName www.chang.com //将域名注释掉
ErrorLog "logs/www.chang.com.error_log"
CustomLog "logs/www.chang.com.access_log" common
<Directory "var/www/html">
Require all granted
</Directory>
</VirtualHost>
[root@localhost csdn1]# cd /etc/httpd/conf //进入Apcahe配置文件目录
[root@localhost conf]# ls
csdn1 httpd.conf magic
[root@localhost conf]# vim httpd.conf //进入配置文件,添加监听地址
41 Listen 192.168.9.153:80
42 Listen 192.168.9.153:8080 //添加一个8080端口
43 #Listen 80
[root@localhost conf]# systemctl restart httpd //重启服务
2.在客户集中访问虚拟Web主机
访问192.168.9.153:80端口
访问192.168.9.153:8080端口
三.基于IP地址的虚拟主机
首先先添加一块网卡
1.更改虚拟主机配置
[root@localhost conf]# cd /var/www/html/ //重新创建一个站点并输入信息
[root@localhost html]# ls
chang csdn
[root@localhost html]# mkdir csdn01
[root@localhost html]# echo "this is csdn01" > csdn01/index.html
[root@localhost html]# vim /etc/named.rfc1912.zones //重新更改域名
zone "csdn.com" IN {
type master;
file "csdn.com.zone";
allow-update { none; };
};
zone "csdn01.com" IN {
type master;
file "csdn01.com.zone";
allow-update { none; };
};
[root@localhost html]# cd /var/named/ //创建一个新的域名并添加IP地址
[root@localhost named]# cp -p csdn.com.zone csdn01.com.zone //保留权限复制
[root@localhost named]# ls
chang.com.zone csdn.com.zone dynamic named.empty named.loopback
csdn01.com.zone data named.ca named.localhost slaves
[root@localhost named]# vim csdn01.com.zone
www IN A 192.168.9.149
[root@localhost ~]# cd /etc/httpd/conf/csdn1/ //进入子配置文件目录
[root@localhost csdn1]# ls
csdn.conf
[root@localhost csdn1]# vim csdn.conf //进入子配置文件并作更改
<VirtualHost 192.168.9.153:80> //第一个IP用ens33网卡 访问
DocumentRoot "/var/www/html/csdn"
ServerName www.csdn.com
ErrorLog "logs/www.csdn.com.error_log"
CustomLog "logs/www.csdn.com.access_log" common
<Directory "var/www/html">
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.9.149:80> //第二个IP用ens36网卡访问
DocumentRoot "/var/www/html/csdn01" //更改站点名称
ServerName www.csdn01.com
ErrorLog "logs/www.csdn01.com.error_log"
CustomLog "logs/www.csnd01.com.access_log" common
<Directory "var/www/html">
Require all granted
</Directory>
</VirtualHost>
[root@localhost conf]# vim httpd.conf //更改监听地址
41 Listen 192.168.9.153:80
42 Listen 192.168.9.149:80
43 #Listen 80
[root@localhost named]# systemctl restart named //重启服务
2.在客户集中访问虚拟Web主机
访问IP192.168.9.153
访问IP192.168.9.149
总结:在上述几种虚拟Web主机中,基于域名的虚拟主机是使用最为广泛的。关于另外两种类型的虚拟主机,只介绍了配置要点。另外,因不同类型的虚拟主机其区分机制各不相同,建议不要同时使用,以免互相混淆。
来源:CSDN
作者:changz丶
链接:https://blog.csdn.net/weixin_45724795/article/details/103567776