一、虚拟主机概述

虚拟 Web 主机指的是在同一台服务器中运行多个 Web 站点,其中的每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。通过虚拟 Web 主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

使用 httpd 可以非常方便地构建虚拟主机服务器,只需要运行一个 httpd 服务就能够同时支撑大量的 Web 站点。httpd 支持的虚拟主机类型包括以下三种。

  • 基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。
    例如,www.zf.com 和 www.zzff.com 站点的 IP 地址都是 192.168.247.170。这是使用最为普遍的虚拟 Web 主机类型。

  • 基于 IP 地址:为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。(但是相对安全)

  • 基于端口:这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用了不同的TCP 端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

二、基于域名的虚拟主机配置

为虚拟主机准备测试网页

[root@client ~]# mkdir -p /var/www/html/zfweb1
[root@client ~]# mkdir -p /var/www/html/zfweb2
[root@client ~]# echo "this is zfweb1" > /var/www/html/zfweb1/index.html
[root@client ~]# echo "this is zfweb2" > /var/www/html/zfweb2/index.html

修改虚拟主机的配置文件
1)虚拟主机区域:使用<VirtualHost 监听地址>……区域配置,为
每一个虚拟 Web 主机建立独立的配置内容。其中至少应包括虚拟主机的网站
名称、网页根目录的配置项;其他(如管理邮箱、访问日志等)配置项可
根据实际需要添加。
2) 目录权限:使用<Directory 目录位置>……区域配置,为每一个虚
拟 Web 主机的网站目录设置访问权限,如允许任何人访问。目录访问可以继
承其父目录的授权许可,因此可以采取直接为父文件夹授权访问权限的方法来简化配置当虚拟 Web 主机的数量较多时,建议使用独立的虚拟主机配置文件,然后在 httpd.conf文件中通过 Include 加载这些配置。这样可以将对 httpd.conf 文件的改动减至最少,更方便配置内容的维护。

[root@client ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>                 #虚拟主机www.zf.com站点配置DocumentRoot "/var/www/html/zfweb1"      #网页文件目录ServerName www.zf.com                     #域名配置ErrorLog "logs/www.zfweb1.com.error_log"  #日志文件位置CustomLog "logs/www.zfweb1.com.access_log" common
<Directory "/var/www/html">Require all granted     #设置目录权限
</Directory>
</VirtualHost><VirtualHost *:80>                #虚拟主机www.zf.com站点配置DocumentRoot "/var/www/html/zfweb2"ServerName www.zzff.comErrorLog "logs/www.zfweb2.com.error_log"CustomLog "logs/www.zfweb2.com.access_log" common
<Directory "/var/www/html">Require all granted
</Directory>
</VirtualHost>

修改全局配置文件

[root@client ~]# vi /etc/httpd.conf
#ServerName 前面要加# ,注释原来的域名,不使用
Include conf/extra/httpd-vhosts.conf     #加载虚拟主机的配置文件,开启虚拟主机模块功能

添加IP和域名的映射

192.168.247.170 www.zf.com www.zzff.com

关闭防火墙和核心防护并重启服务

systemctl stop firewalld
setenforce 0
systemctl restart httpd 

验证,访问两个域名


三、基于IP的虚拟主机配置

配置两张网卡
原来的网卡为VMnet8:192.168.247.170
新增一张为:VMnet8:192.168.247.177,查看新网卡的UUID,并添加网卡配置文件

nmcli connection
NAME        UUID                                  TYPE      DEVICE
ens33       49511b41-e51a-41f0-a43e-d13274d3ce10  ethernet  ens33
virbr0      2526d384-aa95-4b4c-9c39-226fc07a2844  bridge    virbr0
有线连接 1  816178ee-807e-3499-9d19-20507cbb8ad3  ethernet  ens36
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vi ifcfg-ens36TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36                                   ###更改为ens36
UUID=816178ee-807e-3499-9d19-20507cbb8ad3    ###更改UUID值
DEVICE=ens36                                 ###更改为ens36
ONBOOT=yes
IPADDR=192.168.247.177                        ###更改IP地址,虚拟主机2的地址
PREFIX=24
GATEWAY=192.168.247.2
IPV6_PRIVACY=no

重启网卡

systemctl restart network

修改虚拟主机配置文件

vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.247.170:80>                         #虚拟主机1站点配置,需要添加IP地址,对应站点区域
DocumentRoot "/var/www/html/zfweb1"
ServerName www.zf.com
......
</VirtualHost><VirtualHost 192.168.247.177:80>                         #虚拟主机2站点配置,需要添加IP地址,对应站点区域
DocumentRoot "/var/www/html/zfweb2"
ServerName www.zzff.top
......
</VirtualHost>vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf                    ##加载虚拟主机的配置文件

添加IP和域名的映射

vi /etc/hosts
192.168.247.170 www.zf.com
192.168.247.177 www.zzff.com

关闭防火墙和核心防护并重启服务

systemctl stop firewalld
setenforce 0
systemctl restart httpd

验证,访问两个域名


四、基于端口的虚拟主机配置

只需要一张网卡
修改虚拟主机配置文件

[root@client ~]# vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.247.170:88>   #虚拟主机1端口号88DocumentRoot "/var/www/html/zfweb1"ServerName www.zf.comErrorLog "logs/www.zfweb1.com.error_log"CustomLog "logs/www.zfweb1.com.access_log" common
<Directory "/var/www/html">Require all granted
</Directory></VirtualHost>
<VirtualHost 192.168.247.170:8080>    #虚拟主机2端口号8080DocumentRoot "/var/www/html/zfweb2"ServerName www.zzff.comErrorLog "logs/www.zfweb2.com.error_log"CustomLog "logs/www.zfweb2.com.access_log" common
<Directory "/var/www/html">Require all granted
</Directory>
</VirtualHost>

修改主配置文件

vi /usr/local/httpd/conf/httpd.conf       #省略部分内容
Include conf/extra/httpd-vhosts.conf                    #加载独立的配置文件
Listen 192.168.247.170:88                                #监听 88 端口
Listen 192.168.247.170:8080                              #监听 8080 端口

验证,访问IP时添加端口


Apache虚拟主机的配置(基于域名、端口、IP)相关推荐

  1. Apache 虚拟主机 VirtualHost 配置

    虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站指配不同的 IP 和端口, 也可让多个网站拥有不同 ...

  2. linux虚拟主机泛解析,Apache虚拟主机的配置和泛域名解析实现代码

    Apache虚拟主机的配置和泛域名解析实现代码 更新时间:2012年03月11日 00:28:19   作者: Apache虚拟主机的配置和泛域名解析实现代码,需要的朋友可以参考下 虚拟主机的配置 基 ...

  3. apache 虚拟主机如何配置

    apache 虚拟主机如何配置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题.  apache虚拟主机就是在apache服务器上配置多个虚 ...

  4. 如何配置Apache虚拟主机?(基于IP、基于端口、基于域名)

    一.Apache虚拟机配置前的准备工作 1.下载yum源 2.安装yum包 3.安装httpd包 4.查看并关闭selinux 5.取消中心主机 cd /etc/httpd/conf vim http ...

  5. web服务器 ---nginx 虚拟主机的创建(基于 域名 . 端口 . ip )以及nginx访问控制

    文章目录 前言 一:Nginx服务基础(理论) 二:Nginx虚拟主机实验 2.1:Nginx虚拟主机应用 2.2 具体步骤,配置基于域名的虚拟主机 2.2.1 安装环境软件软件 2.2.2 编译安装 ...

  6. apache 虚拟主机详细配置:http.conf配置详解

    Apache的配置文件http.conf参数含义详解 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改. 主站点的配置(基本配置) (1) 基本 ...

  7. Apache 虚拟主机的配置[Ubuntu]

    == 基本配置 == 我们都知道,如果我们想在单台机器上设置多个域名或主机名时,我们就要用到基于名称的虚拟主机了.那么要如何进行设置呢?这就是本 HowTo 想解决的问题了.在 Ubuntu 的 /e ...

  8. Apache虚拟主机相关配置

    目录 1.Apache默认虚拟主机 2.Apache用户认证 3.域名跳转 4.Apache访问日志 5.访问日志不记录静态文件 6.访问日志切割 7.静态元素过期时间 扩展 1.Apache默认虚拟 ...

  9. 【笔记】阿里云虚拟主机如何配置二级域名

    朋友问我如何配置云虚拟主机上的二级域名,今天写个文档巩固一下. 工具:在此使用.htaccess配置来完成二级域名. 1.首先你得有一个备案的域名,再去域名解析一个二级域名 2.一个.htaccess ...

最新文章

  1. 聚集索引和非聚集索引实例
  2. vscode如何设置自动保存时自动格式化代码
  3. code block怎样导入整个文件夹_一文就能get!带你了解Python模块导入的真相,拿走不谢...
  4. WIN7如何更改计算机名称
  5. windows下如何下载并安装Python 3.5.
  6. 【Android界面实现】Drawable Animation 使用介绍
  7. PageBean代码,分页
  8. 南邮-2022年6月电子商务练习自整理 - 选择篇
  9. 可以使用C#语言的在线ACM题库
  10. CVX使用基础教程-结合官网教程翻译
  11. PostgreSQL中创建空间拓展(创建空间数据库)并连接到空间数据库,导入数据表操作
  12. 淘宝/天猫关键词搜索采集接口分析商品价格走势(商品列表,商品销量,商品价格,分类ID采集精准商品数据)接口代码对接流程
  13. 男生说fb是什么梗_男生聊污是什么意思 男生会对谁聊污
  14. excel计算结果总是为0
  15. 苹果mac系统下浏览器video无法自动播放问题
  16. 三极管与mos管通俗讲解
  17. 元宇宙-漫游世界后与Cocos一起看湖南卫视直播
  18. 山东省计算机考试模拟,山东省高校计算机等级考试VB考试模拟系统使用说明
  19. 微信企业号开发中文乱码问题
  20. 值得一生收藏的影视经典台词

热门文章

  1. pyaudio usb playback_Behringer的X2222USB是一款22输入2/2总线调音台和USB音频接口
  2. 【软考网络管理员】2023年软考网管初级常见知识考点(15)-网络管理与存储
  3. linux cpio grub 参数,Linux 备份压缩 : cpio 命令详解
  4. java启动mysq服务_启动java服务器
  5. Python +Echarts +PyQt5设计股票期货自动交易系统 二、软件界面响应(一)
  6. 记忆是一个整合的过程
  7. C 语言实现快速排序
  8. 2018.08.28 九份的咖啡店(费用流)
  9. 小皮php面板mysql配置_体验phpStudy小皮面板创建LAMP/LNMP系统和建站图文
  10. Windows Server 2022 预览版简要体验