虚拟主机
一个Web 服务器,如果只能运行一个网站的话,那么对于一些经费不是很足的小公司来说,那就
有些奢侈了,资源没有办法完全利用上 ( 无论是 内存,CPU,硬盘,带宽等等 )
即 如果每台运行 Linux 系统的服务器上只能运行一个网站,那么,人气低,流浪小的草根网
站就会被迫承担高昂的服务器租赁费用了,这显然会造成硬件资源的浪费。
这些浪费的资源呢,如果没浪费的话,它用处可太多了,怎么着也比浪费了强啊
===>>>
哪怕把这些资源租给别人用呢,或者 ,也可以架设其它的网站同时给用户服务 ~!
所以,为了避免浪费这些资源,无论是 硬件资源 还是网络资源、软件资源 的浪费,
所以, Apache 提供了 虚拟专用服务器 ( VPS )~!!
===>>>
虚拟专用服务器 它的主要作用就是通过一些方式 进行 一些 隔离 ,
比如说 : 通过物理状态 或者 软件状态 将一个 物理上的计算机 虚拟成
多个逻辑上的计算机 有点像 VMware ;
那就是说,以前 一台物理机 运行一个网站,而现在用 虚拟专用服
务器 就可以把 这个物理计算机 虚拟出来多个 虚拟主机 ,每个虚拟
主机就可以专门架设运行网站。
换句话说,一个物理机可以应用多个网站,这样就可以充分利用计
算机的硬件、软件资源、带宽等资源了 ~!!
那么,怎么把 物理的计算机 虚拟成 多台逻辑上的虚拟主机 继而架设成多个网站呢 ??
===>>>
这就是我们 虚拟主机 搭建的几种方式了
( 基于 IP , 基于 端口号 , 基于 域名 )
Apache 的虚拟主机功能是服务器基于用户请求的不同 IP 地址、 主机域名 或 端口
号,实现提供多个网站同时为外部提供访问服务的技术,也就是说用户请求的资源
不同,最终获得的网页内容也是不同的 ~!!!!
基于 IP 地址 :
# 基于 IP 地址来进行虚拟主机的架设
原理 :
# 如果 一台服务器 上 有多个 IP 地址,而且每个 IP 地址与 服务器上部署的每个网站
一 一 对应,当用户请求的 IP 地址不同则会访问到不同网页,且每个网站都有一个
独立的 IP 地址 。
( 当然了,首先是 服务器上 有多个 IP 地址 )
===>>>
显然,我们示例的服务器 只有一个 IP 地址 ,是不满足我们的实验要求的~!!
所以,我们还得给 我们的设备 添加 一些 IP 来满足 实验要求 。
( 主机可以有多个 IP 地址,但 IP 地址 只能对应于一台 主机 )
准备工作 :
# 关闭 SELinux 及防火墙
[root@server ~]# setenforce 0
# 关闭防火墙
[root@server ~]# systemctl stop firewalld
# 给网卡添加 两个 IP 地址
那在这里我们也复习下,给网卡添加 IP 地址的方式有哪些 ??
===>>>
总体上概括 : 有三种
1. 图形化 --- nmtui
2. 命令 --- nmcli
3. 配置文件
我们在这里就用命令的方式进行 添加 IP
===>>>
[root@server ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.153.134/24
[root@server ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.153.135/24
我们使用 nmcli 命令进行了 IP 地址的添加 。
添加完成后,我们再使用 ip a 命令查看下,我们添加后的 ip 地址
我们发现了什么,欸 ??? 咋不见新添加的 IP 呢 ???
这是为什么 ??
====>>>>
要清楚,只要对 网卡什么的进行了 修改,那你就得重新加载呀 ~!!!
你只是添加了 IP ,但你并没有重新加载,所以还是显示的原来的配置~!
===>>>
[root@server ~]# nmcli c reload
[root@server ~]# nmcli c up ens160
显然,我们重新加载后,重新启动了 网卡;
再查看 IP 就显示了 我们 新添加的 IP 了~!!!
# 安装 Apache
[root@server ~]# dnf install httpd -y
# 新建网页目录上传网页文件
因为,我们是基于 IP 地址的不同来 访问不同的网页,所以,我们肯定得有这样的网页
区进行访问啊~!
先创建两个目录
[root@server ~]# mkdir -p /www/ip134
[root@server ~]# mkdir -p /www/ip135
然后,把事先准备好的 网页源文件 上传到 刚才创建的两个目录下
===>>>
这是把一个网页的源文件 传到 /www/ip134 目录下了,就是待会儿,访问这个网页,
就用 ip 是 192.168.153.134 这个 IP 进行访问 ~!!!!
这是把 另一个网页源文件 传到 /www/ip 135 目录下了,待会儿访问这个网页的内容
那访问的 IP 就是 192.168.153.135 这个 IP 了~!!
修改配置文件 建立基于IP 虚拟主机 :
[root@server ~]# vim /etc/httpd/conf/httpd.conf
打开 Apache 的主配置文件 ,然后进行 文件修改部分内容
===>>>
打开文件后,直接定位到 107 行 ,是区域配置,当前的 107 行显示的是 对根目录用户的
权限设置; 我们需要进行的操作是,直接把 红色圈 标记的 内容全部删除掉 ( 107 - 110);
然后再 在 107 行 作为起始行,编写 虚拟主机的配置 ~!!
===>>>
上图就是我们将原来的 107 行 至 110 行 删除后,再编辑的 虚拟主机配置 ~!
我们再对上图做以解释 :
===>>>
<VirtualHost 192.168.153.134> # 虚拟主机区域配置
DocumentRoot /www/ip134 # 启动目录设置
ServerName 192.168.153.134 # 服务器主机名,可暂用 ip 替代
<Directory /www/ip134> # 网页目录权限设置,就是要给哪个目录设置权限
AllowOverride none
Require all granted # 表示允许访问 -- granted
</Directory>
</VirtualHost>
这是对 我们基于 IP 里的第一个 IP -- 192.168.153.134 ,同理 192.168.153.135 配置一样
红色标记 是 针对 IP 192.168.153.135 的配置 ~!!
配置的解释 和 134 是一样的,不做赘述,其实,无非是改了 IP 而已 ~!!
至此呢,我们基于 IP 地址的虚拟主机 就 配置完成了;
随后将 文件保存 ,然后 重新启动 Apache 服务
===>>>
[root@server ~]# systemctl restart httpd
重启服务后,在浏览器进行验证即可 ~~!!!
验证 :
基于 IP 为 192.168.153.134 访问网站
基于 IP 为 192.168.153.135 访问网站