配置apache虚拟主机_第1页
配置apache虚拟主机_第2页
配置apache虚拟主机_第3页
配置apache虚拟主机_第4页
配置apache虚拟主机_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、配置apache虚拟主机 通过以下文章:实现:同一一ip不同端端口对应不同同的站点目录录具体实现:1.在httppd.connf中,设置置listeen IP:80 llistenn IP:88080然后在virttualhoost中设置置:DocumneetRoott 1 DocumneetRoott 2 我们通常所说的的虚拟主机url=jaavascrript:;技术/url就是将一台(或或者一组)服服务器的资源源(系统资源源、网络带宽宽、存储空间间等)按照一一定的比例分分割成若干台台相对独立的的“小主机”的技术。每每一台这样的的“小主机”在功能上都都可以实现 WWW、FFTP、Maail

2、等基本本的Inteernet服服务,就像使使用独立的主主机一样。 目前网网站服务器的的虚拟主机平平台使用以开开放的Apaache为最最多,其次是是微软的Wiindowss IIS。AApachee具有跨平台台(FreeeBSD/LLinux/Windoows/Soolariss/Otheer UNIIX)、易于于维护与最佳佳安全性等优优点。 Apaache是率率先支持基于于IP虚拟主主机的服务器器之一。 AApachee 1.1及及其更新版本本同时支持基基于IP和基基于主机名的的虚拟主机,不不同的虚拟主主机有时会被被称为基于主主机(hosst-bassed) 或或非IP虚拟拟主机(noon-I

3、P virtuual hoosts)。 用Appache设设置虚拟主机机服务通常可可以采用两种种方案:基于于IP地址的的虚拟主机和和基于主机名名字的虚拟主主机,下面我我们分别介绍绍一下它们的的实现方法以以及优缺点。以以便大家在具具体的应用中中能够选择最最合适的实现现方法。 一、Apachhe实现基于于IP地址的的虚拟主机(每个站点拥拥有一个独立立IP地址) 使用这这种虚拟主机机方式,首先先要在服务器器上为每个虚虚拟主机单独独设置一个IIP地址。这这些IP地址址可以通过增增加多个网卡卡或者在一个个网卡上设立立多个IP地地址来完成。有有了多个IPP地址后,可可以采用以下下两种方式之之一来设置AAp

4、achee。 1、为每个虚拟拟主机运行一一份Apacche 采用用这种方式,每每一份Apaache程序序可以以单独独的用户运行行,因此各个个虚拟主机之之间互不影响响。设置这种种虚拟主机时时,只要为每每一份Apaache设置置一套配置文文件就可以了了,唯一需要要注意的是:必须使用“Listeen”语句,强制制每一份Appache 仅仅在属于于“自己”的IP地址址上接收服务务请求。 优点:各个虚拟主主机之间互不不干扰,安全全性高。 缺点:占用系统资资源较多。 2、多个虚拟主主机共享同一一份Apacche 采用这这种方式,各各个虚拟主机机共享同一份份Apachhe,因此各各个虚拟主机机之间有一定定的

5、影响,尤尤其是执行CCGI程序时时,可能会带带来一些严重重的安全问题题。设置这种种虚拟主机时时,只要为每每一个虚拟主主机设置类似似如下的信息息即可: DoccumenttRoot /www/ghq1 优点:占用系统资资源比上一种种方式少。 缺点:安全性低,每每个虚拟主机机仍然需要占占用一个IPP地址。 例如服服务器一个网网卡上绑定有有两个IP地地址(170和 50)分别对对应域名 wwww.ghhq1.coom和的的服务,配置置如下: 服务器器配置(appache的的配置文件hhttpd.conf) Lissten 880 DoccumenttRoot /www/ghq1 SerrverNaa

6、me m DoccumenttRoot /www/ghq2 SerrverNaame g 配置简简单说明:“Listeen”默认htttpd服务会会监控第800号通信端口口, “Listeen”选项让用户户自行指定aapachee 服务器监监控的IP地地址或通信端端口。 “DDocumeentRooot”:指定appache 服务器存放放网页的根目目录;“ServeerNamee”:允许用户户自行设置主主机名,这个个名称将被送送到远程连接接程序,以取取代安装appache 服务器主机机的真实名称称。和构成虚虚拟主机的语语法结构,其其中的IP就就是我们在服服务器上绑定定的不同的IIP地址,也也可

7、以是IPP地址加上通通信端口号(见见下面的例子子)。 如果服服务器有两个个IP地址(100和 170)分分别对应域名名 和wwww.ghhq2.orrg。对每个个域名,我们们都希望在880端口和88080端口口发布我们的的网站。可以以这样配置: 服务器器配置(appache的的配置文件hhttpd.conf) Lissten 100:80 Lissten 100:80800 Lissten 100:80 Lissten 100:80800 DoccumenttRoot /www/ghq1-80 SerrverNaame m DoccumenttRoot /www/ghq1-8080 Serrv

8、erNaame m DoccumenttRoot /www/ghq2-80 SerrverNaame g DoccumenttRoot /www/ghq2-8080 SerrverNaame g 因此,建建立虚拟主机机,我们要做做好不同的IIP对应的域域名解析url=jaavascrript:;工作/url,建立相应的目目录(如/wwww/ghhq1),将将相应的主页页内容存放在在相应的目录录中即可。二、Apachhe实现基于于主机名的虚虚拟主机服务务(一个IPP地址实现多多个网站) 基于于主机名字的的虚拟主机服服务,是目前前虚拟主机比比较常用的一一种方案。因因为它不需要要更多的IPP地址,无

9、须须什么特殊的的软硬件支持持。而且现在在的浏览器大大都支持这种种虚拟主机的的实现方法。基基于域名的的的虚拟主机是是根据客户端端提交的HTTTP头中的的关于主机名名的部分决定定的。使用这这种技术,很很多虚拟主机机可以享用同同一个IP地地址。 基于域域名的虚拟主主机相对比较较简单,因为为我们只需要要配置DNSS服务器将每每个主机名映映射(CNAAMES)到到正确的IPP地址,然后后配置Apaache HHTTP服务务器,令其辨辨识不同的主主机名就可以以了。基于域域名的服务器器也可以缓解解IP地址(IIPV4)不不足的问题。这这种方式下,各各个虚拟主机机共享同一份份Apachhe,因此有有CGI程序

10、序运行时,安安全性也不高高。 优点:只要一个IIP地址就可可以提供大量量的虚拟主机机服务。 缺点:安全性差。维维护这些虚拟拟主机时需要要更改配置文文件,并且需需要重新启动动Apachhe进程才能能起作用。因因此不适合进进行大规模的的虚拟主机服服务。 如果果服务器只有有一个IP地地址,而在DDNS中有很很多映射到这这个机器。我我们想要在这这个机器上运运行和 www.gghq2.oorg两个站站点。在Appache服服务器的配置置中创建一个个虚拟主机并并不会自动在在DNS中对对主机名做相相应更新。我我们必须自己己在DNS中中添加域名来来指向我们的的IP地址。否否则别人是无无法看到我们们的web 站

11、点。 服务器器配置(appache的的配置文件hhttpd.conf) # EEnsuree thatt Apacche liistenss on pport 880 Lissten 880 # LListenn for virtuual hoost reequestts on all IIP adddressees NammeVirttualHoost * DoccumenttRoot /www/ghq1 SerrverNaame m # OOther direcctivess heree DoccumenttRoot /www/ghq2 SerrverNaame g # OOther di

12、recctivess heree 因为为*(星号)匹匹配所有的地地址,所以主主服务器不接接收任何请求求。因为 wwww.ghhq1.coom首先出现现在配置文件件中,所以它它拥有最高优优先级,可以以认为是默认认或首要服务务器。这意味味着如果一个个接受的请求求不能与某个个ServeerNamee指令相匹配配, 它将会会由第一个VVirtuaalHostt所伺服。 当我我们的IP地地址无法确定定的时候,使使用*是很方方便的-比比如说, IISP给我们们配置的是动动态IP地址址(如ADSSL拨号上网网),而我们们有使用了某某种动态域名名解析系统时时。因为*匹匹配任何IPP 地址,所所以在这样的的情况

13、下,不不论IP地址址如何变化,我我们都不需要要另外进行配配置。上述配配置就是我们们在绝大多数数情况下使用用基于域名的的虚拟主机时时将要用到的的。关于DNS和AApachee本文档的涵义一一言以蔽之就就是:不要让让Apachhe在解析配配置文件的时时候用到DNNS。 如果果Apachhe在解析配配置文件时用用到了DNSS,您的服务务器就会发生生可靠性的问问题(也可能能根本无法启启动), 或或者遭致拒绝绝(偷窃)服服务攻击(包包括用户可以以从其他用户户那里偷窃点点击)。一个简单示例 拒绝服务 main sserverr地址 避免这些问题的的小技巧 附录:进一步的的提示 一个简单示例ServerAA

14、dmin webgiirlabbc.domm DocumenntRoott /wwww/abc 为了让Apacche功能正正常,一个虚虚拟主机绝对对需要以下两两部分的信息息: SerrverNaame和与服服务器对应的的至少一个IIP地址。 这个示例没没有包括IPP地址,于是是Apachhe必须用DDNS来查询询www.aabc.doom的地址。 如果在某些些不可预料的的情况下,当当您的服务器器解析配置文文件时没有得得到DNS的的支持, 那那么这个虚拟拟主机 将不不会被配置。 它将不会对对任何请求作作出反应。(在Apacche的1.2版本之前前,服务器甚甚至无法启动动)。假设www.aabc.

15、doom的IP地地址是1。那么看看看以下这个配配置片断:ServerAAdmin webgiirlabbc.domm DocumenntRoott /wwww/abc 现在Apachhe需要DNNS对这个虚虚拟主机进行行反向域名解解析来确定SServerrName。 如果反向解解析失败,那那么这将导致致这个虚拟主主机部分功能能丧失。 (在Apaache的11.2版本之之前,服务器器将不能启动动)。如果虚虚拟主机是基基于域名的, 它将完全不不能使用,但但如果它是基基于IP的,那那么它将很有有可能工作。 然而,如如果Apacche不得不不为一个已经经包含了服务务器域名的服服务器产生

16、一一个完整的UURL, 那那么它将可能能产生一个无无效的URLL。以下是一个可以以避免上述两两个问题的配配置片断.ServerNName wwww.abbc.domm ServerAAdmin webgiirlabbc.domm DocumenntRoott /wwww/abc 拒绝服务拒绝服务主要由由(至少)两两种形式导致致。 如果您您在运行Appache 1.2以前前的版本,在在上述两种情情况下,如果果您的任何一一个虚拟主机机的DNS解解析失败,您您都会无法启启动服务。在在一些情况下下,DNS解解析甚至不在在您的控制范范围之内。 比如说,如如果abc.dom是您您的一个客户户,而且他们们自

17、己控制着着DNS。 那么仅仅是是因为他们删删除了wwww.abc.dom这个个记录, 都都会导致您的的服务器(11.2之前的的版本)无法法启动。另外一种形式就就更隐蔽了。比比如说下面这这个配置片断断: ServeerAdmiin webbgirlabc.ddom DocummentRooot /wwww/abbc ServeerAdmiin webbguyddef.doom DocummentRooot /wwww/deef 假设您已经为wwww.abbc.domm设定了,而为wwww.deef.domm设定了。 更进进一步,假设设def.ccom自己控控制

18、DNS。在在这种配置下下, 您已经经把放到到了一个可以以将所有指向向abc.ccom 的所所有流量据为为己有的情况况之下。为了了达到这样的的目的,他们们只需要把wwww.deef.domm的地址解析析设置成就可以了了。因为他们们控制着自己己的DNS服服务, 所以以您无法阻止止他们把 m这个记录指指向任何一个个IP地址。然后,所有向110.0.00.1发出的的请求 (包包括用户所有有类似htttp: /www.aabc.doom/任何字字符的URLL) 都将会会为这个个虚拟主机所所接收。 为为了更好的理理解着一切是是怎样发生的的, 您需要要一个关于 Apachhe是怎样将将进入

19、的请求求分配给它的的虚拟主机的的深入说明。 您可以在这这里发现一个个完整的文档档。main sserverr地址在Apachee 1.1 中,基于域域名的虚拟主主机支持 需需要Apacche知道运运行着htttpd的主机机的IP地址址。 一般来来说可以用全全局变量SeerverNName(如如果存在) 或者调用CC的方法geethosttname(与在命令行行模式下键入入hostnname得到到的返回值一一样)。 接接着它就会利利用DNS来来查找这个地地址。目前还还没有办法避避免这样的查查找。如果您担心这样样的查找会因因为您的DNNS服务器没没有启动而遭遭到失败的结结果, 您就就可以在/eet

20、c/hoosts中插插入一条记录录来确定主机机名 (此文文件中应该已已经存在这条条记录了,否否则您的机器器无法正常启启动)。 然然后,您要确确认您的机器器已经配置为为当DNS解解析失败的情情况下, 它它将会使用/etc/hhosts根根据所使用的的操作系统不不同, 您可可能需要在/etc/rresolvv.conff或/etcc/nsswwitch.conf 两个文件中中选择一个进进行编辑。如果您的服务器器不必因为其其他理由而使使用DNS, 您也许不必必在把HOSSTRESOORDER环环境变量设置置为 loocal的的情况下运行行Apachhe。 这都都取决于您所所使用的操作作系统和解析析库

21、。如果您您没有使用mmod_ennv来控制环环境变量,它它还将影响到到 CGI。强强烈建议您参参考一下您所所使用的操作作系统附带的的man帮助助或FAQ。避免这些问题的的小技巧在VirtuaalHostt中使用IPP地址 在Listenn中使用IPP地址 确保所有的虚拟拟主机拥有显显式的SerrverNaame定义。 创建一个不包含含任何服务页页面的服务器器 附录:进一步的的提示涉及到DNS的的情况都很让让人不舒服。 在Apacche 1.2 中,我我们努力想让让服务器在DDNS解析失失败的情况下下至少保持能能够启动, 但可能我们们还是没能做做到最好。在在当今重编号号成了必须的的Interrn

22、et上面面, 在配置置文件中显式式的写明IPP地址已经成成为不合时宜宜的行为了。上述盗窃攻击的的解决办法是是, 在一个个正向的DNNS查询结果果后部署一个个逆向DNSS解析并将两两个域名进行行比较。 如如果不同,就就禁用相应的的虚拟主机。 这个方法需需要一个正确确配置了的逆逆向域名解析析服务器 (因为FTPP服务器和TTCP封装进进行的“双重逆向”DNS处理理的普遍应用用,这已为大大部分管理员员所熟知了)。在某些情况下,如如果没有使用用IP地址而而DNS解析析又失败了,那那么正常启动动一个基于域域名的虚拟主主机看来是不不可能的。 一些诸如禁禁用部分配置置文件这样的的权宜之计会会带来比根本本不能

23、启动更更遭的不可预预测的结果。随着HTTP/1.1的部部署以及浏览览器和代理服服务器开始支支持Hostt头,我们完完全避免使用用基于IP的的虚拟主机也也逐渐成为可可能。 这种种状况下,wweb服务器器也不必在配配置时进行DDNS的查询询。 但在11997年33月,这些特特性的采用还还没有广泛到到可以在重要要的web服服务器应用的的地步。/ddownlooad/dooc/apaache/AApacheeManuaal/ddownlooad/dooc/apaache/AApacheeManuaal/modd/coree.htmll和用于封装一组组仅施用于特特定虚拟主机机的指令。任任何在虚拟主主机配

24、置中可可以使用的指指令也同样可可以在这里使使用。当服务务器接受了一一个特定虚拟拟主机的文档档请求时,它它会使用封装装在配置段中中的指令。地地址可以是虚拟主机的IPP地址; 虚拟主机IP地地址对应的完完整域名; 字符*,仅与NNameViirtuallHost *配合使用用以匹配所有有的IP地址址;或是 字符串_deffault_,与基于IIP的虚拟主主机联用以捕捕获所有没有有匹配的IPP地址。 示例ServerAAdmin webmaasterhost.foo.ccomDocumenntRoott /wwww/docss/ServerNName hhost.ffoo.coomErrorLoog

25、 loggs/-errorr_logTransfeerLog logs/host.foo.ccom-acccess_logIPv6的地址址必须放入方方括号中指定定,否则作为为可选项的端端口号将无法法确定。一个个IPv6的的示例如下:ServerAAdmin webmaasterhost.foo.ccomDocumenntRoott /wwww/docss/ServerNName hhost.ffoo.coomErrorLoog loggs/-errorr_logTransfeerLog logs/host.foo.ccom-acccess_log每个虚拟主机必必须对应不同同的IP地址址、端口号

26、或或是不同的主主机名。在第第一种情况下下,服务器所所在物理机器器必须配置为为可以为多个个地址接受IIP包。(在在机器没有多多个网络硬件件界面的情况况下,如果您您的操作系统统支持,您可可以使用iffconfiig aliias命令来来达到这个目目的。)。当使用基于IPP的虚拟主机机时,特殊的的名称_deefaultt_可以在没没有匹配上其其它列出的虚虚拟主机的情情况下作为匹匹配任何IPP地址的虚拟拟主机。在没没有进行 _defauult_虚拟拟主机的设定定时,在没有有IP与请求求匹配的情况况下,将使用用“主服务器”(包括所有有在虚拟主机机配置段之外外的配置)的的配置。(但但请注意:任任何匹配Na

27、ameVirrtualHHost指令令的IP地址址既不会使用用mainn服务器配配置,也不会会使用_deefaultt_虚拟主机机的配置。参参阅基于域名名的虚拟主机机文档获得更更多详情。)您可以指定一个个:端口来改改变匹配的端端口。如果没没有指定,它它将沿用主服服务器中离它它最近的那个个Listeen语句指定定的值。您也也可以指定:*来匹配那那个地址上的的所有端口。(当当您使用_ddefaullt_时,这这是推荐采用用的方法。)安全提示:参阅阅安全提示文文档获得为什什么当您存储储url=jaavascrript:;日志/url文件的目录对于于启动服务器器以外的用户户来说是可写写的会危及服服务器

28、安全的的详细资料。注意:的使用不不会影响到AApachee侦听的地址址。您也许需需要使用Liisten来来确保Apaache侦听听着正确的地地址。 本文有经典论坛坛 剑气凌人人 收集整理理为调试程序,本本机安装iiis与apaache,无无法同时使用用80端口,现现给出解决方方法:方法一:IIS5,多IIP下共存,IIIS为1992.1688.0.1,aapachee为192.168.00.2 原文文地址c:InettpubAAdminsscrpttscscrptt adsuutil.vvbs seet w3ssvc/diisableesockeetpoolling ttrue该命令反馈如下下

29、disabblesoccketpooolingg : (BBOOLEAAN) Trrue重启IISInetpubbAdmiinscrptsccscrppt adssutil.vbs sset w33svc/ddisabllesockketpoooling true由于 DisaableSoocketPPoolinng 在 IIIS 6.0 元url=jaavascrript:;数据库/url架构 (MBSSchemaa.xml) 中被定义义为有效属性性,所以,您您仍然可以使使用 Adssutil.vbs 设设置该属性,但但这种设置不不起作用。IIIS 6.0 中的功功能是新增的的核心级别驱驱动

30、程序 HHTTP.ssys 的一一部分。要配配置 HTTTP.syss,您必须使使用 Htttpcfg.exe方法二:IIS6,多IIP下共存,IIIS为1992.1688.0.1,aapachee为192.168.00.2 原文文地址到2003的CCD下的 ssupporrt/toools/Suupportt.cab。解解压出htttpcfg.exe文件件,COPYY到winddows/ssystemm32/目录录下,用法自自己看帮助命令行绑定到某IP: httppcfg sset ipplisteen -i 192.1168.0.1即命令使用IIIS的只监听听指定的IPP及端口查看绑定:

31、hhttpcffg queery ipplisteen 删除绑定: hhttpcffg dellete iiplistten -ii 192.168.00.1命令行net stoop Apaache2net stoop iissadminn /ynet STAART Appache22net STAART w33svc保证iis下的的ip设置为为全局默认,AApachee中httppconf设设置listten 1992.1688.0.2:80,就应应该可以两个个服务同时运运行,相互不不冲突了。IIS的访问地地址为htttp:/1192.1668.0.11,Apacche访问地地址为htttp:/1192.1668.0.22方法三:网上常用的单IIP共用800端口方法,不不过不推荐,只只

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论