php做网站特效,h5网站开发环境,怎么做网站后台,建筑网格布目录 虚拟主机功能
概述
基于 IP 地址的虚拟主机
原理
案例 --- 增加多个IP地址#xff0c;实现基于不同IP地址的虚拟主机功能
基于端口号的虚拟主机
原理
案例 --- 基于不同端口号的虚拟主机
基于域名的虚拟主机
原理
域名解析
案例 --- 使用2个域名建立虚拟主机网…目录 虚拟主机功能
概述
基于 IP 地址的虚拟主机
原理
案例 --- 增加多个IP地址实现基于不同IP地址的虚拟主机功能
基于端口号的虚拟主机
原理
案例 --- 基于不同端口号的虚拟主机
基于域名的虚拟主机
原理
域名解析
案例 --- 使用2个域名建立虚拟主机网站 虚拟主机功能
概述 如果每台运行 Linux 系统的服务器上只能运行一个网站那么人气低、流量小的草根站长就要被迫承担着高昂的服务器租赁费用了这显然也会造成硬件资源的浪费。在虚拟专用服务器Virtual Private SeverVPS与云计算技术诞生以前IDC 服务供应商为了能够更充分地利用服务器资源同时也为了降低购买门槛于是纷纷启用了虚拟主机功能 利用虚拟主机功能可以把一台处于运行状态的物理服务器分割成多个“虚拟的服务器”。但是该技术无法实现目前云主机技术的硬件资源隔离 Apache 的虚拟主机功能是服务器基于用户请求的不同 IP 地址、主机域名或端口号实现提供多个网站同时为外部提供访问服务的技术也就是说用户请求的资源不同最终获取到的网页内容也各不相同
基于 IP 地址的虚拟主机
原理 如果一台服务器有多个IP地址而且每个IP地址与服务器上部署的每个网站一一对应当用户请求的IP地址不同则会访问到不同网页且每个网站都有一个独立的IP地址。常用 注意 主机必须有多个IP地址 案例 --- 增加多个IP地址实现基于不同IP地址的虚拟主机功能
准备工作
[rootlocalhost ~]# yum install httpd -y[rootlocalhost ~]# systemctl start httpd[rootlocalhost ~]# systemctl enable httpd[rootlocalhost ~]# setenforce 0
增加两个IP地址
[rootlocalhost /]# nmcli c modify ens160 ipv4.addresses 192.168.149.150/24
[rootlocalhost /]# nmcli c modify ens160 ipv4.addresses 192.168.149.151/24
[rootlocalhost /]# nmcli c reload
[rootlocalhost /]# nmcli c up ens160
连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/4)
[rootlocalhost /]# ip a 新建2个存储网页的目录写入网页
[rootlocalhost /]# mkdir -p /www/ip150
[rootlocalhost /]# mkdir -p /www/ip151
[rootlocalhost /]# echo ip150 /www/ip150/index.html
[rootlocalhost /]# echo ip151 /www/ip151/index.html
修改配置文件建立基于IP地址的虚拟主机
[rootlocalhost /]# vim /etc/httpd/conf/httpd.conf
# 定位第一行添加如下内容
virtualhost 192.168.149.150documentroot /www/ip150 # 启动目录servername 192.168.149.150 # 设置域名使用IP替代directory /www/ip150allowoverride none # 设置启动目录权限require all granted/directory
/virtualhostvirtualhost 192.168.149.151documentroot /www/ip151servername 192.168.149.151directory /www/ip151allowoverride nonerequire all granted/directory
/virtualhost 重启服务测试
[rootlocalhost /]# curl 192.168.149.150 # 下载网页内容显示到屏幕[rootlocalhost /]# curl 192.168.149.151 基于端口号的虚拟主机
原理 基于端口号的虚拟主机功能可以让用户通过一个IP地址的不同端口号来访问不同的网站
案例 --- 基于不同端口号的虚拟主机
新建2个存储网页目录并编写文件
[rootlocalhost ~]# mkdir -p /www/port{5111,5222}
[rootlocalhost ~]# cd /www/port5111/
[rootlocalhost port5111]# ls
[rootlocalhost port5111]# vim index.html
this is 5111
[rootlocalhost port5111]# cd /www/port5222/
[rootlocalhost port5222]# vim index.html
this is 5222
编辑主配置文件
[rootlocalhost port5222]# vim /etc/httpd/conf/httpd.conf
# 定位第一行添加如下内容
virtualhost 192.168.149.128:5111 # 格式IP端口号documentroot /www/port5111servername www.zy.comdirectory /www/port5111allowoverride nonerequire all granted/directory
/virtualhostvirtualhost 192.168.149.128:5222documentroot /www/port5222servername www.sxhkt.comdirectory /www/port5222allowoverride nonerequire all granted/directory
/virtualhost # 定位第64行修改监听端口号为
Listen 5111
Listen 5222 重启服务
[rootlocalhost /]# systemctl restart httpd
测试
打开Windows的浏览器地址栏中输入192.168.149.128:5111或192.168.149.128:5222 基于域名的虚拟主机
原理 当服务器无法给每个网站都分配一个独立的IP地址时可以通过用户请求的域名实现不同域名传输不同的网页数据
域名解析 功能 --- 域名IP地址
浏览器如何通过域名去查询URL对应的IP对应服务器地址 浏览器缓存 --- 浏览器会按照一定的频率缓存DNS记录 操作系统缓存 --- 如果浏览器缓存中找不到需要的DNS记录那就去操作系统中的hosts文件找。hosts是一个没有扩展名的系统文件其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联数据库当用户在浏览器中输入一个需要登录的网址时系统会首先自动从Hosts文件中寻找对应的IP地址一旦找到系统会立即打开对应网页如果没有找到则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。 windows下的hosts文件路径 --- C:\Windows\System32\drivers\etc\hosts Linux下的hosts文件路径 --- /etc/hosts 路由缓存 --- 路由器也有DNS缓存。 ISP的DNS服务器 --- ISP是互联网服务提供商(Internet Service Provider)的简称ISP有专门的DNS服务器应对DNS查询请求 根服务器 --- ISP的DNS服务器还找不到的话它就会向根服务器发出请求进行查询DNS服务器先问根域名服务器.com域名服务器的IP地址然后再问.com域名服务器依次类推
案例 --- 使用2个域名建立虚拟主机网站
新建2个存储网页目录然后编写数据
[rootlocalhost /]# mkdir -p /www/zy
[rootlocalhost /]# mkdir -p /www/sxhkt
[rootlocalhost /]# vim www/zy/index.html
this is zy
[rootlocalhost /]# vim www/sxhkt/index.html
this is sxhkt
手动配置IP地址与域名的映射关系
[rootlocalhost /]# vim /etc/hosts
192.168.149.128 www.zy.com
192.168.149.128 www.sxhkt.com
编辑主配置文件
virtualhost 192.168.149.128 documentroot /www/zyservername www.zy.com # 域名必须正确directory /www/zyallowoverride nonerequire all granted/directory
/virtualhostvirtualhost 192.168.149.128documentroot /www/sxhktservername www.sxhkt.comdirectory /www/sxhktallowoverride nonerequire all granted/directory
/virtualhost 重启服务测试
[rootlocalhost /]# systemctl restart httpd