一、虚拟web主机
1.1 虚拟web主机概述
虚拟、Web 主机指的是在同一台服务器中运行多个Web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web主机。
1.2 httpd服务支持的虚拟主机类型
包括以下三种:
1)基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。
2)基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。
3)基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号。
二、构建虚拟web主机
1、基于域名的虚拟主机
[root@server1 ~]# mkdir /opt/aa
[root@server1 ~]# mkdir /opt/ab
[root@server1 ~]# cd /opt/aa/
[root@server1 aa]# vi index.html #aa下主页
<html><body><h1>this is server aa</h1></body></html>
[root@server1 aa]# cp index.html /opt/ab/ #主页复制到ab下
[root@server1 ab]# cd /opt/ab/
[root@server1 ab]# vi index.html #修改ab主页
<html><body><h1>this is server ab</h1></body></html>
[root@server1 ab]# cd
[root@server1 ~]# vi /etc/httpd.conf #修改配置文件
Include conf/extra/httpd-vhosts.conf #启用建虚拟主机的配置文件,删除注释
#并复制路径:conf/extra/httpd-vhosts.conf
[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf #粘贴路径
<VirtualHost *:80>
ServerAdmin webmaster@aa.com #修改邮箱
DocumentRoot "/opt/aa" #修改默认的访问站点的路径
ServerName www.aa.com #修改网址,后期需要映射
ServerAlias www.dummy-host.example.com #主机名的别称(不需要直接删除)
ErrorLog "logs/aa.com-error_log" #修改访问日志的目录
CustomLog "logs/aa.com-access_log" common
</VirtualHost>
<Directory "/opt/aa"> #对aa授权
Options Indexes MultiViews FollowSymLinks /#功能选项
AllowOverride None #下一个选项
Order allow,deny #allow和deny同时存在执行顺序:先允许在拒绝
Allow from all #允许全部
Require all granted #允许所有
</Directory>
<VirtualHost *:80>
ServerAdmin webmaster@ab.com #修改邮箱ab,以便区分
DocumentRoot "/opt/ab" #把aa改成ab,下面也是,以便区分
ServerName www.ab.com
ErrorLog "logs/ab.com-error_log"
CustomLog "logs/ab.com-access_log" common
</VirtualHost>
<Directory "/opt/ab "> #对ab授权
Options Indexes MultiViews FollowSymLinks #功能选项
AllowOverride None #下一个选项
Order allow,deny #/allow和deny同时存在执行顺序:先允许在拒绝
Allow from all #允许全部
Require all granted #允许所有
</Directory>
[root@server1 ~]# vi /etc/hosts #末尾添加映射
20.0.0.11 www.aa.com www.ab.com
[root@server1 ~]# systemctl restart httpd #重启服务
[root@server1 ~]# netstat -anpt | grep 80 #查看80端口是否开启
[root@server1 ~]# curl http://www.aa.com
[root@server1 ~]# curl http://www.ab.com
2、基于ip地址的虚拟主机
[root@server1 ~]# ifconfig ens33:1 20.0.0.20/24 #添加一个虚拟地址
[root@server1 ~]# ip addr #进入查看是否添加成功
[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf #修改虚拟主机配置文件,制作捆绑
<VirtualHost *:80> #将*(所有IP)改为ens33IP:20.0.0.11
.......//此处省略
<VirtualHost *:80> #把*改为虚拟地址IP:20.0.0.20
[root@server1 ~]# systemctl restart httpd #重启服务
3、基于端口的虚拟主机
[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 20.0.0.20:8080> ¥修改端口
[root@server1 ~]# vi /etc/httpd.conf #更改主配置文件
Listen 8080 //监听端口80下加8080端口
[root@server1 ~]# systemctl restart httpd #重启服务
[root@server1 ~]# netstat -anpt | grep httpd #检查8080端口是否开启