专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »web服务器 » apache虚拟主机:Apache下服务器虚拟主机的设置思路方法介绍 »正文

apache虚拟主机:Apache下服务器虚拟主机的设置思路方法介绍

来源: 发布时间:星期四, 2009年1月15日 浏览:48次 评论:0
  、WWW服务器虚拟主机原理

  WWW服务器虚拟主机是指使用台物理机器充当多个主机名WWW服务器比如由台机器同时提供http://www.company1.com, http://www.company2.com 等WWW服务而浏览这些WWW站点用户感觉不到这种方式下跟由区别机器提供区别服务有什么差别

  使用WWW虚拟主机好处在于些小规模网站WebSite通过跟其他网站WebSite共享同台物理机器可以减少系统运行成本并且可以减少管理难度另外对于个人用户也可以使用这种虚拟主机方式来建立有自己独立域名WWW服务器目前国内有很多公司都提供这种免费服务

  WWW虚拟主机有两种工作方式:

  1.1 基于IP地址虚拟主机方式

  这种方式下区别主机名解析到区别IP地址提供虚拟主机服务机器上同时设置有这些IP地址服务器根据用户请求IP地址来判定用户请求是哪个虚拟主机服务从而进处理

  缺点:基于IP地址虚拟主机方式需要在提供虚拟主机服务机器上设立多个IP地址既浪费了IP地址又限制了台机器所能容纳虚拟主机数目因此这种方式越来越少使用但是这种方式是早期使用HTTP 1.0协议唯支持虚拟主机方式

  1.2 基于主机名虚拟主机方式

  由于基于IP地址虚拟主机方式有如上缺点HTTP 1.1协议中增加了对基于主机名虚拟主机支持具体说当客户向WWW服务器发出请求时客户想要访问主机名也通过请求头中“Host:”语句传递给WWW服务器比如www.company1.com www.company2.com 都对应于同个IP地址(即由同台机器来给这两个虚拟域名提供服务)客户要存取http://www.company1.com/index.html时发出请求头中包含有如下内容:

  GET /index.html HTTP/1.1

  Host: www.company1.com

  …..

  WWW服务器接收到这个请求后可以通过检查“Host:”语句来判定客户请求是哪个虚拟主机服务然后再进处理

  优点:提供虚拟主机服务机器上只要设置个IP地址理论上就可以给无数多个虚拟域名提供服务占用资源少管理方便目前基本上都是使用这种方式来提供虚拟主机服务

  缺点:在早期HTTP 1.0版本下不能使用实际上现在使用浏览器基本上都支持基于主机名虚拟主机方式

   2、Apache服务器下虚拟主机设置技术

  2.1 Apache WWW服务器介绍

  Apache WWW服务器是目前Internet上使用最广WWW服务器软件Software通过灵活配置它可以完成几乎您想得到功能本文主要介绍在Apache 下设置各种虚拟主机思路方法

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

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

  2.2.1 为每个虚拟主机运行份Apache

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

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

  缺点:占用系统资源较多

  2.2.2多个虚拟主机共享同份Apache

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

<VirtualHost www.company1.com>;
DocumentRoot /home/company1

</VirrualHost>;


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

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

  2.3 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进程才能起作用因此不适合进行大规模虚拟主机服务

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

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

  2.4.1 Apache中URL重写功能

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

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

  2.4.2 使用Apache中URL重写功能实现基于名字大规模虚拟主机设置

  假设机器www.home.com提供名字形如abcde.home.com、hijk.home.com等大规模虚拟主机服务其中虚拟主机名必须是字母或数字并且长度至少为3为了防止个目录下文件或子目录太多而对性能产生很大负面影响对用户目录按照名字进行分级划分如虚拟主机abcde.home.com相关文件存放在目录/member/ab/de/abcde下面其中“ab”、“de”分别是“abcde”前边两个和最后两个当用户请求http://abcde.home.com时系统应该返回/member/ab/de/abcde下面文件

  下面是为了完成这种功能需要进行设置

  1. 对域名服务器设置

  假设www.home.comIP地址为202.103.190.57在域名服务器DNShome.com数据文件中增加行:

  --------------------------------------------------------------------

  * IN A 202.103.190.57

  --------------------------------------------------------------------

  这样所有 *.home.comIP地址都会被解析为202.103.190.57就没有必要为各个虚拟主机分别进行设置

  2. 对Apache设置

  首先使用命令“httpd -l”检查mod_rewrite模块是否已经编译到Apache中如果没有重新编译Apache

  然后在Apache配置文件httpd.conf中增加如下语句(其中以“#”开头为注释):

  -----------------------------------------------------------------------

  #禁止使用机器正式名

  UseCanonicalName off

  #使能重写功能

  RewriteEngine _disibledevent=application/x-httpd-cgi,L]

  -------------------------------------------------------------------------

  其中nph-redirect.cgi为个CGI为了实现自动重定向它需要产生完整HTTP 应答头信息通过环境变量PATH_INFO得到用户请求URL通过环境变量REMOTE_ADDR得到用户IP地址并根据网络拓扑情况生成重定向信息返回给客户

  参考文献:

  1.Apache 1.3 User's Guide http://www.apache.org

  Virtual Hosting Setup Using Apache

  Abstract:

  There are two types of WWW Virtual Hosting, IP-based and Name-based. Those two types are roduced in this thesis, followed by some methods about WWW Virtual Hosting configuration under Apache and the dference between them is analyzed.



0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: