apache 主服务器部署 - 容器

【基本介绍】
这里介绍apache主服务配置文件httpd.conf中的容器部分。
它以<容器名>开头</容器名>为结束的样式来对指令进行封装,指令的作用域在容器里面。

【容器介绍】
1. IfModule
<IfModule>容器作用于模块,它会判断模块是否载入,然后再决定是否进行处理,只有在判断结果为真时才会执行容器内的指令,相反如果为假,则会全部忽略。
例如: 如果载入了dir_module模块那么执行里面的指令
<IfModule dir_module>
  DirectoryIndex index.html
<IfModule>


2. IfDefine
与IfModule类似,判断为真时执行指令,但是它需要在httpd启动时加上特定的参数才能起作用。
例如:容器定义了一个Proxy的参数,然后再httpd启动时使用-D参数来启动Proxy,这样在httpd启动时读取到了上面的<IfDefine Proxy>容器就会判断为真,并执行容器内的指令。
<IfDefine Proxy>
  LoadModule proxy_module modules/libproxy.so
</IfDefine>



3. Directory与DirectoryMatch
<Directory>容器的作用就是让它所封装的指令在指定的目录以及他的子目录中起作用,这个目录必须是一个完整的路径,支持通配符“*”“?”“[]”,但是不能匹配“/”。
例如:对目录的访问权限进行设置
<Directory /var/www/html>
  Order Deny,Allow
  Deny from All
</Directory>


<Directory ~ "^/var/apache[0-9]{2}/html">
  Order Deny,Allow
  Deny from All
</Directory>


DirectoryMatch容器与Directory容器的作用相似,都是作用与目录,只是<DirectoryMatch>容器可以直接接受正则表达式,而不需要加上"~"
例如:
<Directory  "^/var/apache[0-9]{2}/html">
  Order Deny,Allow
  Deny from All
</Directory>



4. Files与FilesMatch
与Directory容器作用与目录相对应,Files容器只作用与文件,正则表达式等类似于Directory
<Files "^\.ht">
  Order Deny,Allow
  Deny from All
</Files>



5. Location与LocationMatch
Location与LocationMatch容器的作用是对URL进行访问控制。
例如:Location容器会首先对到来的URL请求匹配,如果是以/cgi开头的URL则会全部拒绝。
<Location /cgi>
  Order Deny,Allow
  Deny from All
</Location>





猜你喜欢

转载自runpanda.iteye.com/blog/2166482