apache服务构建虚拟web主机

  • 一、虚拟web主机的类型
    • 1、虚拟 Web 主机介绍
    • 2、apache服务支持的三种虚拟web主机类型
      • 2.1、基于域名的类型
      • 2.2、基于IP地址的类型
      • 2.3、基于端口的类型
  • 二、构建基于域名的虚拟web主机
    • 1、提供域名解析
    • 2、准备网页文档
    • 3、更改配置文件
    • 4、客户机访问虚拟的web主机
  • 三、构建基于IP地址的虚拟web主机
  • 四、构建基于端口的虚拟web主机

一、虚拟web主机的类型

1、虚拟 Web 主机介绍

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

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

2、apache服务支持的三种虚拟web主机类型

2.1、基于域名的类型

基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。这是使用最为普遍的虚拟 Web 主机类型

2.2、基于IP地址的类型

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

2.3、基于端口的类型

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

:因为不同类型的虚拟主机其区分机制各不相同,建议不要同时使用,以免相互混淆。

二、构建基于域名的虚拟web主机

1、提供域名解析

首先需要向 DNS 服务提供商注册各虚拟 Web 站点的域名,以便当访问其中任何一 个虚拟 Web 站点时,最终访问的都是同一个 IP 地址——实际支撑所有虚拟 Web 站点 的服务器的 IP 地址。

假设我们有两个域名www.wlm.com、www.wat.com。对用应的IP地址为20.0.0.58。我们可以将两个域名作为apache服务的两个虚拟的web站点同时对应一个IP地址20.0.0.58。

2、准备网页文档

为每个虚拟 Web 主机准备网站目录及网页文档。分别为每个虚拟 Web 主机提供包含不同内容的首页文件。

[root@localhost ~]# mkdir -p /var/www/html/wlmcom
[root@localhost ~]# mkdir -p /var/www/html/watcom
[root@localhost opt]# echo "<h1>www.wlm  web1</h1>" > /var/www/html/wlm/index.html
[root@localhost opt]# echo "<h1>www.wat  web2</h1>" > /var/www/html/wat/index.html
3、更改配置文件

在 apache服务的主配置文件中,若要启用基于域名的虚拟 Web 主机,通常需要更改以下两个区域

  • 虚拟主机区域配置:使用<VirtualHost 监听地址>……区域配置,为每一 个虚拟 Web 主机建立独立的配置内容。其中至少应包括虚拟主机的网站名称、网 页根目录的配置项;其他(如管理邮箱、访问日志等)配置项可根据实际需要添加。

  • 访问网页根目录的权限配置:使用<Directory 目录位置>……区域配置,为每一个虚拟 Web 主机的网站目录设置访问权限,如允许任何人访问。目录访问可以继承其父目录的授权许可,因此可以采取直接为父文件夹授权访问权限的方法来简化配置。 当虚拟 Web 主机的数量较多时,建议使用独立的虚拟主机配置文件。

[root@localhost opt]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
.......                  //省略部分信息//可在此位置手动创建独立的访问目录权限
<VirtualHost *:80>           //设置域名 www.wlm.com 虚拟站点区域DocumentRoot "/var/www/html/wlm"    //服务访问域名网页的路径ServerName www.wlm.com      //服务访问的域名ErrorLog "logs/www.wlm.com.error_log"      //错误访问日志存放路径CustomLog "logs/www.wel.com.access_log" common      //访问日志存放路径<Directory "/var/www/html">        //设置目录访问权限Require all granted              //允许所有访问</Directory>
</VirtualHost><VirtualHost *:80>    //设置域名 www.wlm.com 虚拟站点区域。DocumentRoot "/var/www/html/wat"    //服务访问域名网页的路径ServerName www.wat.com    //服务访问的域名ErrorLog "logs/www.wat.com.error_log"     //错误访问日志存放路径CustomLog "logs/www.wat.com.access_log" common   //访问日志存放路径<Directory "/var/www/html">     //设置目录访问权限Require all granted   //允许所有访问</Directory>
</VirtualHost>

然后在 httpd.conf 文件中通过开启 “Include conf/extra/httpd-vhosts.conf”加载这些配置。这样可以将对 httpd.conf 文件的改动减至最少,更方便配置内容的维护。

[root@localhost opt]# vim /usr/local/httpd/conf/httpd.conf
.......                  //省略部分信息
Include conf/extra/httpd-vhosts.conf //加载独立的配置文件,将行首的 "#" 删除
.......                  //省略部分信息
[root@localhost opt]# systemctl restart httpd   //重启httpd服务
4、客户机访问虚拟的web主机

首先,在客户机的hosts文件中加入dns域名的映射,再在客户机的浏览器中,使用网站名称分别访问不同的域名,能够看到之前设定的网页内容,此时表示基于域名的虚拟主机配置成功。若无法看到此结果,则需要检查两个站点的首页文件,根据上述过程排查配置错误,必要时清空浏览器缓存后重新访问。

Linux的hosts文件路径为:/etc/hosts
20.0.0.58    www.wlm.com      //添加内容
20.0.0.58    www.wat.com
window的hosts文件路径为:C:\Windows\System32\drivers\etc\hosts
20.0.0.58    www.wlm.com         //添加内容
20.0.0.58    www.wat.com

测试结果显示:
域名为www.wlm.com的测试页

域名为www.wat.com的测试页

三、构建基于IP地址的虚拟web主机

构建基于 IP 地址或基于端口的虚拟主机的过程与基于域名的虚拟主机类似,也需要先提供域名解析、准备网页文档,再调整 httpd 配置、重启 httpd 服务,然后在客户 机中访问虚拟主机进行测试。其中最主要的区别是,不同类型的虚拟主机在 httpd.conf 文件中的配置内容略有不同。

对于基于 IP 地址的虚拟主机,每个虚拟 Web 主机各自使用不同的 IP 地址,但是 都通过同一台 httpd 服务器对外提供 Web 浏览服务。正因为如此,用来支撑这些虚拟 Web 主机的服务器也就需要有大量的网络接口,这在实际应用中往往不太方便,所以 基于 IP 地址的虚拟主机并不像基于域名虚拟主机那样应用广泛。

更改httpd.conf文件配置

[root@localhost opt]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
.......                  //省略部分信息//可在此位置手动创建独立的访问目录权限
<VirtualHost 20.0.0.58>           //基于20.0.0.58IP的虚拟web主机配置DocumentRoot "/var/www/html/wlm"    //服务访问域名网页的路径ServerName www.wlm.com      //服务访问的域名ErrorLog "logs/www.wlm.com.error_log"      //错误访问日志存放路径CustomLog "logs/www.wel.com.access_log" common      //访问日志存放路径<Directory "/var/www/html">        //设置目录访问权限Require all granted              //允许所有访问</Directory>
</VirtualHost><VirtualHost 20.0.0.55>    //基于20.0.0.55的虚拟web主机的配置DocumentRoot "/var/www/html/wat"    //服务访问域名网页的路径ServerName www.wat.com    //服务访问的域名ErrorLog "logs/www.wat.com.error_log"     //错误访问日志存放路径CustomLog "logs/www.wat.com.access_log" common   //访问日志存放路径<Directory "/var/www/html">     //设置目录访问权限Require all granted   //允许所有访问</Directory>
</VirtualHost>
[root@localhost opt]# vim /usr/local/httpd/conf/httpd.conf
.......                  //省略部分信息
Include conf/extra/httpd-vhosts.conf //加载独立的配置文件,将行首的 "#" 删除
.......                  //省略部分信息
[root@localhost opt]# systemctl restart httpd   //重启httpd服务

基于IP20.0.0.58的虚拟web主机

基于20.0.0.50的虚拟web主机

四、构建基于端口的虚拟web主机

基于端口的虚拟主机通常只用于同一个 Web 站点,其针对的网站名称、IP 地址往 往是相同的,但通过不同的 TCP 端口来提供访问不同网页内容的服务入口。在浏览器 中访问非 80 端口的 Web 服务器时,需要明确指出服务器的端口号,如访问 http://www.wat.com:55/或http://20.0.0.58.55/。

[root@localhost opt]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 20.0.0.58:80>    //基于80端口的虚拟web主机配置DocumentRoot "/var/www/html/wlm"ServerName www.wlm.comErrorLog "logs/www.wlm.com.error_log"CustomLog "logs/www.wel.com.access_log" common<Directory "/var/www/html">Require all granted</Directory>
</VirtualHost><VirtualHost 20.0.0.58:55>   //基于55端口的web主机配置DocumentRoot "/var/www/html/wat"ServerName www.wat.comErrorLog "logs/www.wat.com.error_log"CustomLog "logs/www.wat.com.access_log" common<Directory "/var/www/html">Require all granted</Directory>
</VirtualHost>

配置基于端口的虚拟 Web 主机时,要通过多个 Listen 配置项来指定要监听的 TCP 端口号,需要更改httpd.conf配置文件。

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf   //编辑配置文件
// 使用vim编辑器末行模式/搜索Listen 80服务器默认监听的端口,在其下一行添加配置
.......                  //省略部分信息
Listen 80
Listen 55     //添加监听55端口
.......                  //省略部分信息
Include conf/extra/httpd-vhosts.conf //加载独立的配置文件,将行首的 "#" 删除
.......                  //省略部分信息
[root@localhost opt]# systemctl restart httpd   //重启httpd服务

访问基于80端口的web虚拟机

访问基于55端口的web虚拟机

注:个人建议生产环境用基于域名的虚拟web主机

apache服务构建虚拟web主机相关推荐

  1. 构建虚拟web主机(基于域名,IP,端口)

    文章目录 构建虚拟 web主机简介 1.基于域名 2.基于IP 3.基于端口 构建虚拟 web主机简介 虚拟 Web 主机指的是在同一台服务器中运行多个 Web 站点,其中的每一个站点实际上并不独立占 ...

  2. Nginx网站服务与虚拟Web主机(域名、IP、端口)

    文章目录 一.Nginx概述 1.什么是Lginx 2.Nginx工作原理 3.Nginx 的模块从功能上分为如下三类 4.Nginx的模块从结构上分为核心模块.基础模块和第三方模块 二.搭建Ngin ...

  3. 虚拟web主机搭建 ---基于域名、基于IP、基于端口

    构建虚拟web主机 一.基于域名 1.配置网卡 虚拟机1 虚拟机2 2.重启网卡并查看 虚拟机1 虚拟机2 3.创建目录并挂载,切换到光驱目录并下载bind软件包 在这里插入图片描述 4.关闭防火墙和 ...

  4. 虚拟服务器 端口管理,Apache服务配置虚拟主机(基于域名、端口、IP地址)与简单访问权限管理...

    虚拟Web主机 在同一台物理服务器中运行多个Web站点,其中每一一个站点并不独立占用一台真正的计算机. httpd支持的虚拟主机类型 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机 构 ...

  5. 0301 、Web服务器简介、虚拟Web主机、NFS服务基础、触发挂载

    目录 一.Web服务器简介 1.三步骤策略:装包.配置.启服务 2.主配置文件:/etc/httpd/conf/httpd.conf (1)案例1:更改网页根目录/var/www/html------ ...

  6. 使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务

    http://www.ibm.com/developerworks/cn/web/wa-aj-tomcat/ 使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务 Y ...

  7. jersey tomcat MySQL_基于jersey和Apache Tomcat构建Restful Web服务(一)

    基于jersey和Apache Tomcat构建Restful Web服务(一) 现如今,RESTful架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来 ...

  8. Web服务器群集--Nginx网站服务(运行控制,访问状态统计,基于授权和客户端的访问控制,基于域名,端口,IP的虚拟web主机访问)

    文章目录 前言 一:Nginx服务基础 1.1:Nginx概述 1.2:Nginx编译安装(过程) 1.3:运行控制(实验过程) 1.4:配置文件nginx.conf 1.5:Nginx的访问状态统计 ...

  9. 搭建虚拟Web主机(基于域名、IP、端口)

    文章目录 一.Apache概述 1.Apache起源 2.Apache特点 3.版本差异 4.编译安装优点 5.Apache依赖软件包 6.Apache配置选项: 7.Apache主要子目录的用途 二 ...

最新文章

  1. 从表到里学习JVM实现
  2. Zookeeper 服务注册中心
  3. django win下安装mysql_python测试开发django-8.windows系统安装mysql8教程
  4. Decision Tree学习笔记(基础篇)
  5. 推荐12个漂亮的 CSS3 按钮实现方案
  6. VS下如何配置才能使用 cl 命令行方式编译 C/C++ 程序
  7. 【Python】Django CSRF问题
  8. 自然语言处理 | (30) 文本相似度计算与文本匹配问题
  9. 一键去“码”的AI,还能认出带上口罩的脸
  10. C++Primer_Chap16_模板和泛型编程_List01_定义模板_笔记
  11. 30岁前不必在乎的30件事
  12. killall 命令的用法
  13. Unity导出微信小游戏
  14. 计算机安全检查表,电脑安全自我检查表.doc
  15. windows7英文版,变为中文版
  16. 简练软考知识点整理-规划风险管理
  17. echarts3.0之关系图详解
  18. win7下安装svn服务器端及客户端详细步骤
  19. Flash新手教程:打造拟真生态水族鱼缸-鼠绘锦鲤和浮叶
  20. 很全的英语短语,可以防止你英文退化

热门文章

  1. 借助ENVI软件,使用shp数据裁剪不规则影像问题
  2. html5花瓣掉落,用掉落的花瓣,可以玩出多少种让人惊艳的创意?
  3. a记录 mysql_[a]-和[a]相关的内容-阿里云开发者社区
  4. java.io.FileNotFoundException异常的原因
  5. 【leetcode慢速刷题记录】1. 两数之和
  6. AtCoder Beginner Contest 192 A~D题解
  7. SIGGRAPH中海洋的研究学习
  8. java开源验证框架OVAL帮助文档
  9. xtrabackup 命令详解
  10. mysql xtrabackup-v2_xtrabackup 备份问题