Apache HTTP Server(二)--配置文件


Apache HTTP Server(二)--配置文件
 
主要配置文件
 
Apache通过在文本配置文件里放置指令来配置HTTP服务器。主配置文件通常为httpd.conf(apache2为/etc /apache2/apache2.conf,它会包含httpd.conf),该文件的位置在编译期中设置,也可以使用命令行参数-f来重写。此外,其 它配置文件可以通过Include指令来引用,这里可以使用通配符来引用多个配置文件(比如厅Include mods-enabled/*.conf)。httpd在启动或重启时会加载主要配置文件。
 
服务器也读取一个包含mime文档类型的文件,文件名通过TypeConfig指令来指定。默认情况下为mime.types。
  www.2cto.com  
语法
配置文件里通过一个指令为一行。在行末用“\”可以标示指令占据多行。
 
指令本身是不区分大小写的,但它的参数通常是大小写敏感的。以#开头的行被视为注释。空白行和指令前的空格都被忽略。
 
Define定义的变量和shell环境变量可以通过${VAR}的形式在配置文件里使用。通过Define定义的变量比环境变量的优先级高。如果 VAR没有定义,那么${VAR}会保持不变,而且一个警告会发生。变量名不能包含“:”,以免干扰RewriteMap指令。
 
只有在服务器启动前定义的环境变量才会被展开。在配置文件本身定义的环境变量,如通过SetEnv定义的,不会展开。
 
配置文件在展开变量、联合后续行(\结尾表示)后的最大长度大约为16M。.htaccess文件里行的最大长度为8190个字符。
 
使用命令apachectl configtest或apachectl -t可以在不启动服务器的情况下检查配置文件语法错误。
 
mod_info模块的-DUMP-CONFIG可以输出解析所有引用文件和环境变量,以及删除注释、不匹配的<IfDefine>和<IfModule>的配置文件。
  www.2cto.com  
模块
核心服务器只包含了最基本的功能,扩展特性可以通过加载模块来使用。默认情况下,一个模块的基本集在编译期包含进了服务器。如果服务器被编译成使用 动态加载模块,那么模块可以分开编译,并在任何时候使用LoadModule指令加入。否则,服务器必须重新编译来加入或删除模 块。<IfModule>块里的指令只在所需模块被加载时才会执行,比如:
 
<IfModule mod_gnutls.c>
    Listen 443
</IfModule>
 
命令行参数-l可以查看编译进server的模块,-M可以查看动态加载的模块。
 
指令作用域
在主配置文件里的指令会作用于整个服务器。 放 入<Directory>、<DirectoryMatch>、<Files>、<FilesMatch>、<Location>、 和<LocationMatch>块里的指令只作用于服务器的一部分。它们根据文件系统的位置或URL来应用指令。它们也可以嵌套。
 
Apache允许多个不同的网站同时运行,这被称为Virtual Hosting。在<VirtualHost>块里的指令只应用到特定的网站里。  www.2cto.com  
 
尽管多数指令都可以放在任何区块里,但一些指令在一些上下文里没有意义。
 
.htaccess文件
 
如果在某个目录下放置一个.htaccess文件,那么它里面的配置会应用在当前目录以及它的所有子目录里。.htaccess文件的语法和主配置文件的语法相同。这个文件的名字也可以通过主配置文件里的AccessFileName指令来指定。
 
由于.htaccess文件在每次请求时读取,该文件的任何修改都会立即得到反映。
 
主配置文件里可以使用AllowOverride指定来决定什么指令可以放置在.htaccess文件里。
 
 
作者 yourtommy

相关内容

    暂无相关文章