ServerRoot指令设置了服务器所在的目录。一般来说它将包含conf/和logs/子目录。使用DEB包安装的系统, 此项的默认值为 "/etc/apache2" 也就是说仅仅包括apache2的配置文件.必须注意, 该目录是受保护的, 不允许非root用户对其进行修改.
指定httpd配置文件守护进程的加锁文件。由于httpd会经常进行并发的文件操作,就需要使用加锁的方式来保证文件操作不冲突,由于NFS(网络文件系统)在文件加锁方面能力有限,因此这个目录应该是本地磁盘文件系统,而不应该使用网络上的文件系统。 一般不需要设置这个参数,Apache服务器将自动在ServerRoot下面的路径中进行操作。但如果ServerRoot为NFS文件系统,便需要使用这个参数指定本地文件系统中的路径。
指定记录httpd配置文件守护进程的进程号的文件。由于httpd配置文件能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,它为其他进程的父进程。对这个进程发送信号将影响所有的httpd进程。PidFile定义的文件中就记录httpd父进程的进程号。 示例: PidFile /var/run/apache.pid
设置连接请求的最大延时,超过这个设置,即自动断开。
提供了长效的HTTP会话,用以在同一个TCP连接中进行多次请求。在某些情况下,这样的方式会对包含大量图片的HTML文档造成的延时起到50%的加速作用。在Apache1.2版本以后,您可以设置 KeepAlive On 以启用持久链接。
指令限制了当启用KeepAlive时,每个连接允许的请求数量。如果将此值设为"0",将不限制请求的数目。我们建议最好将此值设为一个比较大的值,以确保最优的服务器性能。默认为 100
设置第一连接后,下次发送请求的最大时间间隔,超过这个设定的时间,而没有下次传输请求,则断开连接。这个时间间隔不能设置太长,否则很很可能给服务器的整个连接性能造成影响,当然也不宜太短,否则用户端会经常出现连接中断现象。
封装指令并根据指定的模块是否启用为条件而决定是否进行处理 < IfModule test > ... < / IfModule > 配置段用于封装根据指定的模块是否启用而决定是否生效的指令。 在 < IfModule > 配置段中的指令仅当test为真的时候才进行处理。如果test为假,所有其间的指令都将被忽略。
设置服务器启动时所建立的子进程数。
设置服务器所允许运行的最多子进程数,当服务器所连接的进程数超过所设定的值时,任何客户都不能与服务器连接,只有等待。当有子进程断开连接后服务器才提供相应服务。
设置单个子进程可以允许的最多请求数,当超过这个设定的值,子进程将被取消。0意味着无限, 即子进程用不消毁
服务器以root身份启动后, 改变为设置的用户/组身份进行运行, 以增强安全性.
本指令定义访问日志的记录格式。 例如:
LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common
指定了当服务器遇到错误时记录错误日志的文件。如果file-path不是一个以斜杠(/)开头的绝对路径,那么将被认为是一个相对于ServerRoot的相对路径。
这个指令允许在服务器配置文件中加入其它配置文件。
Alias指令使文档可以被存储在DocumentRoot以外的本地文件系统中。以(%已解码的)url-path路径开头的URL可以被映射到以directory-path开头的本地文件。
< Directory > 和< / Directory > 用于封装一组指令,使之仅对某个目录及其子目录生效。Directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串。
Options指令控制了在特定目录中将使用哪些服务器特性。默认为 All.
当服务器发现一个.htaccess文件(由AccessFileName指定)时,它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置指令。仅允许存在于< Directory > 配置段
Order指令控制默认的访问状态与Allow和Deny指令生效的顺序。Ordering取值范围是以下几种范例之一:
Deny,Allow
Deny指令在Allow指令之前被评估。默认允许所有访问。
Allow,Deny
Allow指令在Deny指令之前被评估。默认拒绝所有访问。
Mutual-failure
只有出现在Allow列表并且不出现在Deny列表中的主机才被允许访问。这种顺序与"Order Allow,Deny"具有同样效果,不赞成使用。
关键字只能用逗号分隔;它们之间不能有空格
Allow指令控制哪些主机可以访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。这个指令的第一个参数总是"from".
条指令允许基于主机名、IP地址或者环境变量限制对服务器的访问。Deny指令的参数设置和Allow指令完全相同。
使用ErrorDocument指令后面跟随一个HTTP应答代码和一个URL或信息来进行配置。Apache有时会额外提供一些信息来描述所发生的问题/错误。
设置了当客户端在请求的目录名的末尾刻意添加一个"/"以表示请求该目录的索引时,服务器需要寻找的资源列表。也就是设置目录的默认页
指定所发布目录中的配置文件名,在向客户端返回其中的文档时,服务器将在这个文档所在的各级目录中查找此配置文件。 可以使用AllowOverride none来禁用
配置服务器如何确定它自己的域名和端口.
此指令启用了DNS查询,使得主机名能被记入日志. 参数Double指定进行一次双向DNS查询。也就是说在一次反向查询之后,再对返回的结果进行一次正向查询。
在列出目录内容时, 设置那些文件将被隐藏.
在文件扩展名与特定的编码方式之间建立映射关系。
示例
AddEncoding x-gzip .gz
AddEncoding x-compress .Z
在文件扩展名与特定的语言之间建立映射。
在特定的文件扩展名与特定的字符集之间建立映射。
在给定的文件扩展名与特定的内容类型之间建立映射关系。
BrowserMatch只是SetEnvIf的一种特殊情况,基于User-Agent头有条件地设置环境变量。下面的两行具有相同的效果:
BrowserMatchNoCase Robot is_a_robot
SetEnvIfNoCase User-Agent Robot is_a_robot
据客户端的请求属性设置环境变量。
指示Apache只在指定的IP地址和端口上监听;默认情况下Apache会在所有IP地址上监听。Listen是一个必须设置的指令。如果在配置文件中找不到这个指令,服务器将无法启动。这和先前的版本不一样。
当且仅当应答内容是text/ plain或text/ html时,此指令将会在HTTP应答头中加入的默认字符集。理论上这将覆盖在文档体中通过< meta > 标签指定的字符集,但是实际的行为通常取决于用户浏览器的设置。AddDefaultCharset Off 将会禁用此功能。AddDefaultCharset On 将启用Apache内部的默认字符集iso-8859-1 。
该指令加载目标文件或库filename并将模块结构名module添加到活动模块列表。
定了用户目录下的一个实实在在的目录,存放了该用户提供访问的文档。
为一个基于域名的虚拟主机指定一个IP地址(和端口)如果您要配置基于域名的虚拟主机,NameVirtualHost指令就是您必须的指令之一。尽管addr参数可以使用主机名,但建议您还是使用IP地址。
< VirtualHost>和< / VirtualHost> 用于封装一组仅作用于特定虚拟主机的指令。任何在虚拟主机配置中可以使用的指令也同样可以在这里使用。当服务器接受了一个特定虚拟主机的文档请求时,它会使用封装在< VirtualHost>配置段中的指令。
设置了在所有返回给客户端的错误信息中包含的管理员邮件地址。
设置站点的主目录。这个主目录不包括网站中的一些链接及虚拟目录。比如说:
DocumentRoot /usr/web
于是对http://www.my.host.com/index.html的访问就会指向/usr/web/index.html 。如果directory-path不是绝对路径,则被假定为是相对于ServerRoot的路径。指定DocumentRoot时不应包括最后的"/"。
LogLevel用于调整记录在错误日志中的信息的详细程度。
允许您配置服务器端生成文档的页脚(错误信息、mod_proxy的ftp目录列表、mod_info的输出)。您启用这个页脚的原因主要在于处于一个代理服务器链中的时候,用户基本无法辨识出究竟是链中的哪个服务器真正产生了返回的错误信息。