当前位置: 首页 > news >正文

Apache服务器虚拟主机设置技术深入解析

WWW服务器虚拟主机是指使用一台物理机器,充当多个主机名的WWW服务器。使用WWW虚拟主机的好处在于,一些小规模的网站,通过跟其他网站共享同一台物理机器,可以减少系统的运行成本,并且可以减少管理的难度。另外,对于个人用户,也可以使用这种虚拟主机方式来建立有自己独立域名的WWW服务器。下面,我就给大家介绍一下如何在Apache下设置各种虚拟主机。

  一、Apache WWW服务器简介

  Apache WWW服务器是目前Internet上使用最广的WWW服务器软件。通过灵活的配置,它几乎可以完成您想要的所有功能。

  二、Apache WWW服务器下基于IP地址的虚拟主机设置

  使用这种虚拟主机方式,首先要在服务器上为每个虚拟主机单独设置一个IP地址。这些IP地址可以通过增加多个网卡或者在一个网卡上设立多个IP地址来完成。有了多个IP地址后,可以采用以下两种方式之一来设置Apache:

  1、为每个虚拟主机运行一份Apache

  采用这种方式,每一份Apache程序可以以单独的用户运行,因此各个虚拟主机之间互不影响。设置这种虚拟主机时,只要为每一份Apache设置一套配置文件就可以了,唯一需要注意的是:必须使用“Listen”语句,强制每一份Apache仅仅在属于“自己”的IP地址上接收服务请求。

  优点:各个虚拟主机之间互不干扰,安全性高。

  缺点:占用系统资源较多。

  2、多个虚拟主机共享同一份Apache

  采用这种方式,各个虚拟主机共享同一份Apache,因此各个虚拟主机之间有一定的影响,尤其是执行CGI程序时,可能会带来一些严重的安全问题。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可:

  VirtualHost www.company1.com;

  DocumentRoot /home/company1

  …

  /VirrualHost;

  优点:占用系统资源比上一种方式少。

  缺点:安全性低,每个虚拟主机仍然需要占用一个IP地址。

  三、Apache WWW服务器下简单的基于名字的虚拟主机设置

  这种方式下,各个虚拟主机共享同一份Apache,因此有CGI程序运行时,安全性也不高。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可

  NameVirtualHost 111.222.33.44; 在这个IP地址接收虚拟主机的服务

  VirtualHost 111.222.33.44;

  ServerName www.company1.com

  DocumentRoot /www/company1

  /VirtualHost;

  VirtualHost 111.222.33.44;

  ServerName www.company2.com

  DocumentRoot /www/company2

  /VirtualHost;

  优点:只要一个IP地址就可以提供大量的虚拟主机服务。

  缺点:安全性差。维护这些虚拟主机时需要更改配置文件,并且需要重新启动Apache进程才能起作用。因此不适合进行大规模的虚拟主机服务。

  四、Apache WWW服务器下基于名字的大规模虚拟主机设置

  所谓大规模虚拟主机,是指能够提供非常多的虚拟主机服务,比如能提供超过数十万个域名的虚拟主机服务。如果使用以上讨论的方法,是很难完成的。实现这种服务的一种方式是利用Apache 功能强大的URL重写功能。下面以一个实例来说明这种方式。

  1、Apache中URL重写功能

  Apache 1.2及以后版本都有URL重写(Rewrite)功能。简单的说,URL重写功能就是在Apache接收到请求后,在处理的过程中能根据预先设定的规则,对请求中的URL进行修改。这些规则主要由正规表达式组成。重写依赖于输入的URL、各种服务器端环境变量、HTTP请求头中的内容、时间,甚至可以通过外部的程序来使用数据库中的信息来帮助重写。

  URL重写功能非常强大,通过URL重写,可以使Apache完成异常复杂的功能。当然,URL重写功能本身也比较复杂,关于URL重写功能的详细说明可以参看Apache 的随机文档。

  WWW服务器虚拟主机是指使用一台物理机器,充当多个主机名的WWW服务器。使用WWW虚拟主机的好处在于,一些小规模的网站,通过跟其他网站共享同一台物理机器,可以减少系统的运行成本,并且可以减少管理的难度。另外,对于个人用户,也可以使用这种虚拟主机方式来建立有自己独立域名的WWW服务器。下面,我就给大家介绍一下如何在Apache下设置各种虚拟主机。

相关文章:

  • 转载文章:在Spring Boot中使用条件化的Bean
  • 《赢在用户》8月19日北京书友会报道!
  • kryo浅析
  • 六招彻底防范ARP病毒反复发作
  • 转载:面试前必须要知道的Redis面试题
  • 如何检测网内IP地址是否被占用
  • 转载:Java并发编程-原子类实现
  • Java 中的四种引用类型
  • 美国国家安全局在监视全球网民?
  • 评论:微软的SOA战略
  • SpringBoot 以字符串格式传入时间
  • 基于JAVA的开源工作流引擎(Open Source Workflow Engines Written in Java)
  • SpringBoot WebFlux 官网文档阅读笔记
  • 拿到好牌就出昏招——郝玺龙妙语录
  • 关于 SkipList (跳表)的一些资料梳理
  • 网络传输文件的问题
  • 【翻译】babel对TC39装饰器草案的实现
  • 78. Subsets
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • CSS居中完全指南——构建CSS居中决策树
  • Java多态
  • LeetCode29.两数相除 JavaScript
  • spark本地环境的搭建到运行第一个spark程序
  • SpiderData 2019年2月23日 DApp数据排行榜
  • spring + angular 实现导出excel
  • ubuntu 下nginx安装 并支持https协议
  • webpack入门学习手记(二)
  • 爱情 北京女病人
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 技术:超级实用的电脑小技巧
  • 使用common-codec进行md5加密
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • (十三)Flask之特殊装饰器详解
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • ***原理与防范
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET Core 成都线下面基会拉开序幕
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .net core使用ef 6
  • .net FrameWork简介,数组,枚举
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • /var/spool/postfix/maildrop 下有大量文件
  • @Bean, @Component, @Configuration简析
  • @Transaction注解失效的几种场景(附有示例代码)
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [go 反射] 进阶
  • [HEOI2013]ALO
  • [JavaWeb玩耍日记]Maven的安装与使用
  • [MySQL]基础的增删改查
  • [office] 怎么在Excel2003菜单栏自定义一个选项卡 #其他#微信#知识分享
  • [Oh My C++ Diary]一元作用域运算符::的使用
  • [python] 过年燃放烟花
  • [Python] 输入与输出
  • [SpringCloud] OpenFeign核心架构原理 (一)