Apache 2.2配置段和容器
2008-04-09 12:25
260 查看
以下内容摘自笔者编著的《网管员必读——网络应用》(第2版)一书:
3.2.2 Apache 2.2配置段和容器
“配置段”和“容器”都是用来指定配置文件的作用范围的。配置文件中指令的作用范围可能是整个服务器,也可能是特定的目录、文件、主机、URL。本节将要介绍的是如何使用配置段及.htaccess文件来改变配置指令的作用范围。1.配置段和容器的类型
配置段的类型包括在core、mod_version和mod_proxy 3个模块中,可以使用的指令包括:、、、、、、、、、、和。这些指令都是配置段的容器。容器有两种基本类型。大多数容器是针对各个请求的,包含于其中的指令仅对与该容器匹配的请求起作用,而容器、、仅在启动和重新启动时起作用,如果在启动时指定的条件成立,则其中的指令对所有的请求都有效,否则将被忽略。容器中的指令只有在httpd命令行中设定了特定的参数后才有效。下面的示例中限定只有在服务器用 httpd -DClosedForNow 方式启动时,所有的请求才会被重定向到另一个站点:Redirect / http://otherserver.example.com/ 容器与很相似,但是其中的指令只有当服务器启用特定的模块时才有效(或是被静态地编译进了服务器,或是被动态装载进了服务器)。注意,配置文件中该模块的装载指令LoadModule行必须出现在此容器之前。这个容器应该仅用于无论特定模块是否安装,配置文件都能正常运转的场合;而不应该用于容器中的指令在任何情况下都必须生效的场合,因为它会抑制类似模块没找到之类的有用出错信息。下面的示例中,指定MimeMagicFiles指令仅当mod_mime_magic模块启用时才有效。MimeMagicFile conf/magic 指令与和也很相似,但是其中的指令只有当正在执行的服务器版本与指定的版本要求相符时才有效。这个模块被设计用于测试套件,以及在一个存在多个不同httpd版本的大型网络中需要针对不同版本使用不同配置的情况。= 2.1> # 仅在版本高于 2.1.0 的时候才生效 、、都可以在条件前加一个“!”符号以实现条件的否定,而且都可以嵌套以实现更复杂的配置。2.文件系统和网络空间
最常用的配置段是针对文件系统和网络空间特定位置的配置段。首先必须理解文件系统和网络空间这两个概念的区别:文件系统是指操作系统所看见的磁盘视图,比如,在UNIX系统中,Apache会被默认安装到“/usr/local/apache2.2”目录下,在Windows系统中,Apache会被默认安装到“Program Files/Apache Software Foundation/Apache2.2”目录下。相反,网络空间是网站被Web服务器发送及被客户在浏览器中所看到的视图。在Windows平台下,网络空间的默认安装路径为“Program Files/Apache Software Foundation/Apache2.2/ htdocs”。由于网页可以从数据库或其他地方动态生成,因此,网络空间无须直接映射到文件系统中。Apache始终用正斜杠而不是反斜杠作为路径的分隔符,即使是在Windows平台中。 |
3.虚拟主机
“虚拟主机”是指在一个机器上运行多个网站(比如,www.company1.com和www.company2.com)。如果每个网站拥有不同的IP地址,则虚拟主机可以是“基于IP”的;如果只有一个IP地址,也可以是“基于主机名”的,其实现对最终用户是透明的。这一点,其实在介绍IIS网站架设中也有类似的说明,那就是网站的标识,它既可以基于IP地址,也可以基于“主机头值”(也就是域名),还可以基于端口。Apache是率先支持基于IP的虚拟主机的服务器之一。1.1及其更新版本同时支持基于IP和基于主机名的虚拟主机。虚拟主机中所用的容器就是,它作用于特定的虚拟主机,为同一个机器上具有不同配置的多个主机提供支持。有关虚拟主机的配置方法将在本章后面具体介绍。4.代理
和容器中的指令仅作用于通过mod_proxy代理服务器访问的、与指定URL匹配的站点。下面的示例中的配置会拒绝通过代理服务器访问cnn.com站点。http://cnn.com/[/url]*>Order allow,denyDeny from all5.总结
以上介绍了几种类型的容器及所用的指令,查阅指令的作用域,就可以知道哪些指令可以出现在哪些配置段中。从语法上看,允许在段中使用的指令当然也可以在、、、、、、段中使用,但也有例外:AllowOverride指令只能出现在段中。 Options(参数选项)中的FollowSymLinks和SymLinksIfOwnerMatch只能出现在段或者.htaccess文件中。Options指令不能用于和段。 除了各自的应用范围不同之外,它们之间有些配置段还是可以合并的。配置段会按非常特别的顺序依次生效,由于这会对配置指令的处理结果产生重大影响,因此理解它的流程非常重要。合并的顺序如下。(1)(除了正则表达式)和.htaccess同时处理(如果允许的话,.htaccess的设置会覆盖的设置);(2)(和);(3)和同时处理;(4)和同时处理。除了,每个组都按它们在配置文件中出现的顺序被依次处理,而(上面的第1组),会按顺序由短到长被依次处理。例如:会先于被处理。如果有多个指向同一个目录的段,则按它们在配置文件中的顺序被依次处理。用Include指令包含进来的配置被视为按原样插入到Include指令的位置。位于容器中的配置段在外部对应的段处理完毕以后再处理,这样就允许虚拟主机覆盖主服务器的设置。当请求是由mod_proxy处理的时候,容器将会在处理顺序中取代容器的位置。也就是说,后面的段覆盖前面的相应的段。相关文章推荐
- Apache 2.2配置段和容器 推荐
- Apache 2.2配置段和容器
- Apache 2.2配置段和容器
- apache2.2配置httpd.conf
- PHP5+APACHE2.2配置成功案例
- PHP5+APACHE2.2配置成功案例
- Apache 2.2配置段和容器
- apache2.2+php5.3+mysql配置
- apache2.2+php5.2+MYSQL5.0+phpMyAdmin2.9+Zend 安装配置简述
- (一)apache(主要是httpd-2.2)的基础配置篇
- Apache2.4和Apache2.2访问控制配置比较
- Windows下Django1.6 + Apache2.2 + mod_WSGI 配置部署
- Apache2.2配置虚拟目录
- Apache服务器运维笔记(2)----使用<IfDefine>容器实现不同的配置
- Windows下 Apache2.2 + PHP + phpMyAdmin + MySQL 配置简要相关说明
- 在 Linux/Apache 2.2 上配置SVN服务器
- PHP5+APACHE2.2配置成功案例
- PHP5+APACHE2.2配置
- Apache2.2配置
- 如何在WIN7下配置PHP5+apache2.2+mysql5.0