Apache2 httpd.conf 配置详解(一)

常用配置指令说明

1. ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录。默认为安装目录,不需更改。

语法:ServerRoot directory-path

如: ServerRoot "/usr/local/apache-2.2.6"

注意,此指令中的路径最后不要加 / 。

2. Listen:指定服务器监听的IP和端口。默认情况下Apache会在所有IP地址上监听。Listen是Apache2.0以后版本必须设置的指令,如果在配置文件中找不到这个指令,服务器将

无法启动。

语法:Listen [IP-address:]portnumber [protocol]

Listen指令指定服务器在那个端口或地址和端口的组合上监听接入请求。如果只指定一个端口,服务器将在所有地址上监听该端口。如果指定了地址和端口的组合,服务器将在指

定地址的指定端口上监听。可选的protocol参数在大多数情况下并不需要,若未指定该参数,则将为443端口使用默认的https 协议,为其它端口使用http协议。

使用多个Listen指令可以指定多个不同的监听端口和/或地址端口组合。

默认为:Listen 80

如果让服务器接受80和8080端口上请求,可以这样设置:

Listen 80

Listen 8080

如果让服务器在两个确定的地址端口组合上接受请求,可以这样设置:

Listen 192.168.2.1:80

Listen 192.168.2.2:8080

如果使用IPV6地址,必须用方括号把IPV6地址括起来:

Listen [2001:db8::a00:20ff:fea7:ccea]:80

3. LoadModule:加载特定的DSO模块。Apache默认将已编译的DSO模块存放于4.1目录结构小节中所示的动态加载模块目录中。

语法:LoadModule module filename

如:LoadModule rewrite_module modules/mod_rewrite.so

如果filename使用相对路径,则路径是相对于ServerRoot所指示的相对路径。

Apache配置文件默认加载所有已编译的DSO模块,笔者建议只加载如下模块:authn_file、authn_default、 authz_host、authz_user、authz_default、auth_basic、dir、alias

、filter、speling、 log_config、env、vhost_alias、setenvif、mime、negotiation、rewrite、deflate、 expires、headers、cache、file-cache、disk-cache、mem-cache

4. User:设置实际提供服务的子进程的用户。为了使用这个指令,服务器必须以root身份启动和初始化。如果你以非root身份启动服务器,子进程将不能够切换至非特权用户,并

继续以启动服务器的原始用户身份运行。如果确实以root用户启动了服务器,那么父进程将仍然以root身份运行。

用于运行子进程的用户必须是一个没有特权的用户,这样才能保证子进程无权访问那些不想为外界所知的文件,同样的,该用户亦需没有执行那些不应当被外界执行的程序的权限

。强烈建议专门为Apache子进程建立一个单独的用户和组。一些管理员使用nobody用户,但是这并不能总是符合要求,因为可能有其他程序也在使用这个用户。

例:User daemon

5. Group:设置提供服务的Apache子进程运行时的用户组。为了使用这个指令,Apache必须以root初始化启动,否则在切换用户组时会失败,并继续以初始化启动时的用户组运行

例:Group daemon

6. ServerAdmin:设置在所有返回给客户端的错误信息中包含的管理员邮件地址。

语法:ServerAdmin email-address|URL

如果httpd不能将提供的参数识别为URL,它就会假定它是一个email-address ,并在超连接中用在mailto:后面。推荐使用一个Email地址,因为许多CGI脚本是这样认为的。如果你

确实想使用URL,一定要保证指向一个你能够控制的服务器,否则用户将无法确保一定可以和你取得联系。

7. ServerName:设置服务器用于辨识自己的主机名和端口号。

语法:ServerName [scheme://]fully-qualified-domain-name[:port]

可选的‘scheme://‘前缀仅在2.2.3以后的版本中可用,用于在代理之后或离线设备上也能正确的检测规范化的服务器URL。

当没有指定ServerName时,服务器会尝试对IP地址进行反向查询来推断主机名。如果在ServerName中没有指定端口号,服务器会使用接受请求的那个端口。

为了加强可靠性和可预测性,建议使用ServerName显式的指定一个主机名和端口号。

如果使用的是基于域名的虚拟主机,在<VirtualHost>段中的ServerName将是为了匹配这个虚拟主机,在"Host:"请求头中必须出现的主机名。

8. DocumentRoot:设置Web文档根目录。

语法:DocumentRoot directory-path

在没有使用类似Alias这样的指令的情况下,服务器会将请求中的URL附加到DocumentRoot后面以构成指向文档的路径。

如果directory-path不是绝对路径,则被假定为是相对于ServerRoot的路径。

指定DocumentRoot时不应包括最后的"/"。

9. <Directory>:<Directory>和</Directory>用于封装一组指令,使之仅对某个目录及其子目录生效。

语法:<Directory Directory-path> ... </Directory>

Directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串。在通配符字符串中,"?"匹配任何单个的字符,"*"匹配任何字符序列。也可以使

用"[]"来确定字符范围。在"~" 字符之后也可以使用正则表达式。

如果有多个(非正则表达式)<Directory>配置段符合包含某文档的目录(或其父目录),那么指令将以短目录优先的规则进行应用,并包含.htaccess文件中的指令。

正则表达式将在所有普通配置段之后予以考虑。所有的正则表达式将根据它们出现在配置文件中的顺序进行应用。

<Directory>指令不可被嵌套使用,也不能出现在<Limit>或<LimitExcept>配置段中。

10. <Files>:提供基于文件名的访问控制,类似于<Directory>和<Location>指令。

语法:<Files filename> ... </Files>

filename参数应当是一个文件名或是一个包含通配符的字符串,其中"?"匹配任何单个字符,"*"匹配任何字符串序列。在"~"字符之后可以使用正则表达式。

在此配置段中定义的指令将作用于其基本名称(不是完整的路径)与指定的文件名相符的对象。<Files>段将根据它们在配置文件中出现的顺序被处理:在<Directory>段和.htaccess

文件被处理之后,但在<Location>段之前。<Files>能嵌入到<Directory>段中以限制它们作用的文件系统范围,也可用于.htaccess文件当中,以允许用户在文件层面上控制对它们

自己文件的访问。

11. <IfModule>:封装根据指定的模块是否启用而决定是否生效的指令。

语法:<IfModule [!]module-file|module-identifier> ... </IfModule>

module-file是指编译模块时的文件名,比如mod_rewrite.c 。

module-identifier是指模块的标识符,比如mod_rewrite 。

在<IfModule>配置段中的指令仅当测试结果为真的时候才进行处理,否则所有其间的指令都将被忽略。

12. Options:控制在特定目录中将使用哪些服务器特性

语法:Options [+|-]option [[+|-]option] ...

option可以为None,不启用任何额外特性,或者下面选项中的一个或多个:

All  除MultiViews之外的所有特性,这是默认设置。

ExecCGI  允许使用mod_cgi执行CGI脚本。

FollowSymLinks  服务器允许在此目录中使用符号连接,如果此配置位于<Location>配置段中,则会被忽略。

Includes  允许使用mod_include提供的服务器端包含。

IncludesNOEXEC  允许服务器端包含,但禁用"#exec cmd"和"#exec cgi",但仍可以从ScriptAlias目录使用"#include virtual"虚拟CGI脚本。

Indexes  如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会返回由mod_autoindex生成的一个格式化后的目录列表。

MultiViews  允许使用mod_negotiation提供内容协商的"多重视图"(MultiViews)。

SymLinksIfOwnerMatch  服务器仅在符号连接与其目的目录或文件的拥有者具有相同的uid时才使用它。 如果此配置出现在<Location>配置段中,则将被忽略。

一般来说,如果一个目录被多次设置了Options ,则最特殊的一个会被完全接受(其它的被忽略),而各个可选项的设定彼此并不融合。然而,如果所有作用于Options指令的可选项

前都加有"+" 或"-"符号,此可选项将被合并。所有前面加有"+"号的可选项将强制覆盖当前的可选项设置,而所有前面有"-"号的可选项将强制从当前可选项设置中去除。

13. AllowOverride:确定允许存在于.htaccess文件中的指令类型。

语法:AllowOverride All|None|directive-type [directive-type] ...

如果此指令被设置为None ,那么.htaccess文件将被完全忽略。事实上,服务器根本不会读取.htaccess文件。

当此指令设置为All时,所有具有".htaccess"作用域的指令都允许出现在.htaccess文件中。

directive-type可以是下列各组指令之一:

AuthConfig  允许使用与认证授权相关的指令

FileInfo  允许使用控制文档类型的指令、控制文档元数据的指令、mod_rewrite中的指令、mod_actions中的Action指令

Indexes  允许使用控制目录索引的指令

Limit  允许使用控制主机访问的指令

Options[=Option,...]  允许使用控制指定目录功能的指令(Options和XBitHack)。可以在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制允许Options指令

使用哪些选项。

AllowOverride仅在不包含正则表达式的<Directory>配置段中才是有效的。在<Location>, <DirectoryMatch>, <Files>配置段中都是无效的。

Order:控制默认的访问状态与Allow和Deny指令生效的顺序。

Ordering取值范围是以下几种范例之一:

Deny,Allow  Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。

Allow,Deny  Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问。

Mutual-failure  只有出现在Allow列表并且不出现在Deny列表中的主机才被允许访问。这种顺序与"Order Allow,Deny"具有同样效果,不赞成使用。

关键字只能用逗号分隔,它们之间不能有空格,在所有情况下每个Allow和Deny指令语句都将被评估。

Allow:控制哪些主机可以访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。

语法:Allow from all|host|env=env-variable [host|env=env-variable] ...

这个指令的第一个参数总是"from",随后的参数可以有三种不同形式:如果指定"Allow from all",则允许所有主机访问,按照下述Deny和Order指令的配置;若要只允许特定的主

机或主机群访问服务器,host可以用下面任何一种格式来指定:一个(部分)域名、完整的IP地址、部分IP地址、网络/掩码、网络/nnn无类别域间路由规格;第三种参数格式允许

对服务器的访问由环境变量的一个扩展指定,指定"Allow from env=env-variable"时,如果环境变量env-variable存在则访问被允许,使用由mod_setenvif提供的指令,服务器用

一种基于客户端请求的弹性方式提供了设置环境变量的能力。因此,这条指令可以用于允许基于像User-Agent(浏览器类型)、Referer或其他 HTTP请求头字段的访问。

Deny:控制哪些主机被禁止访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。

语法:Deny from all|host|env=env-variable [host|env=env-variable] ...

此指令的参数设置和Allow指令完全相同。

14. DirectoryIndex:当客户端请求一个目录时寻找的资源列表。

语法:DirectoryIndex Local-url [Local-url] ...

Local-url(%已解码的)是一个相对于被请求目录的文档的URL(通常是那个目录中的一个文件)。可以指定多个URL,服务器将返回最先找到的那一个,比如:

DirectoryIndex index.html index.php

15. ErrorLog:指定当服务器遇到错误时记录错误日志的文件。

语法:ErrorLog file-path|syslog[:facility]

如果file-path不是一个以斜杠(/)开头的绝对路径,那么将被认为是一个相对于ServerRoot的相对路径;如果file-path以一个管道符号(|)开头,那么会为它指定一个命令来处理

错误日志,如 ErrorLog "|/usr/local/sbin/cronolog /var/log/httpd/%w/errors_log" 。

如果系统支持,使用"syslog"替代文件名将通过 syslogd(8)来记载日志。默认将使用系统日志机制local7 ,但您可以用"syslog:facility"语法来覆盖这个设置,其中,facility

的取值为syslog(1)中记载的任何一个名字。

16. LogLevel:用于调整记录在错误日志中的信息的详细程度。

语法:LogLevel level

可以选择下列level,依照重要性降序排列:

emerg  紧急(系统无法使用)

alert  必须立即采取措施

crit  致命情况

error  错误情况

warn  警告情况

notice  一般重要情况

info   普通信息

debug  调试信息

当指定了某个级别时,所有级别高于它的信息也会被同时记录。比如,指定 LogLevel info ,则所有notice和warn级别的信息也会被记录。建议至少使用crit级别。

当错误日志是一个单独分开的正式文件的时候,notice级别的消息总是会被记录下来,而不能被屏蔽。但是,当使用syslog来记录时就没有这个问题。

17. LogFormat:定义访问日志的记录格式。

语法:LogFormat format|nickname [nickname]

LogFormat指令可以使用两种定义格式中的一种。

在第一种格式中,指令只带一个参数,以定义后续的TransferLog指令定义的日志格式。另外它也可以通过下述的方法使用nickname来引用某个之前的LogFormat定义的日志格式。

第二种定义LogFormat指令的格式中,将一个直接的format和一个nickname联系起来。这样在后续的LogFormat或 CustomLog指令中,就不用一再重复整个冗长的格式串。定义别名

的LogFormat指令仅仅用来定义一个nickname ,而不做其它任何事情,也就是说,它只是定义了这个别名,它既没有实际应用这个别名,也不是把它设为默认的格式。因此,它不

会影响后续的 TransferLog指令。另外,LogFormat不能用一个别名来定义另一个别名。nickname不能包含百分号(%)。

关于format的格式,请参见Apache2.2官方文档中的自定义日志格式小节。

18. CustomLog:设定日志的文件名和格式。

语法:CustomLog file|pipe format|nickname [env=[!]environment-variable]

第一个参数指定了日志记录的位置,可以使用以下两种方式来设定:

file  相对于ServerRoot的日志文件名。

pipe  管道符"|"后面紧跟着一个把日志输出当作标准输入的处理程序路径。

第二个参数指定了写入日志文件的内容。它既可以是由前面的LogFormat指令定义的nickname ,也可以是直接按Apache2.2官方文档中的自定义日志格式小节所描述的规则定义的

format字符串。

第三个参数是可选的,它根据服务器上特定的环境变量是否被设置来决定是否对某一特定的请求进行日志记录。如果这个特定的环境变量被设置(或者在"env=!name"的情况下未被

设置),那么这个请求将被记录。可以使用mod_setenvif和/或mod_rewrite模块来为每个请求设置环境变量。

19. TransferLog:指定日志文件的位置。

语法:TransferLog file|pipe

本指令除不允许直接定义日志格式或根据条件进行日志记录外,与CustomLog指令有完全相同的参数和功能。实际应用中,日志的格式是由最近的非别名定义的LogFormat指令指定

。如果没有定义任何日志格式,则使用通用日志格式。

20. Alias:映射URL到文件系统的特定区域。

语法:Alias URL-path file-path|directory-path

Alias指令使文档可以被存储在DocumentRoot以外的本地文件系统中。以(%已解码的)url-path路径开头的URL可以被映射到以directory-path开头的本地文件。

如果对在DocumentRoot之外的某个目录建立了一个Alias ,则可能需要通过<Directory>段明确的对目标目录设定访问权限。

21.ScriptAlias:映射一个URL到文件系统并视之为CGI脚本目录。

语法:ScriptAlias URL-path file-path|directory-path

ScriptAlias指令的行为与Alias指令相同,但同时它又标明此目录中含有应该由cgi-script处理器处理的CGI脚本。以URL-path开头的(%已解码的)的URL会被映射到由第二个参数指

定的具有完整路径名的本地文件系统中的脚本。

ScriptSock:在以线程式MPM(worker)运行的Apache中设置用来与CGI守护进程通信的套接字文件名前缀(其后附加父进程 PID组成完整的文件名)。这个套接字将会用启动Apache服

务器的父进程用户权限(通常是root)打开。为了维护与CGI脚本通讯的安全性,不允许其他用户拥有写入套接字所在目录的权限是很重要的。

22. DefaultType:在服务器无法由其他方法确定内容类型时,发送的默认MIME内容类型。

语法:DefaultType MIME-type

默认:DefaultType text/plain

23. AddType:在给定的文件扩展名与特定的内容类型之间建立映射关系。

语法:AddType MIME-type extension [extension] ...

MIME-type指明了包含extension扩展名的文件的媒体类型。这个映射关系会添加在所有有效的映射关系上,并覆盖所有相同的extension扩展名映射。

extension参数是不区分大小的,并且可以带或不带前导点。

24. ErrorDocument:批示当遇到错误的时候服务器将给客户端什么样的应答。

语法:ErrorDocument error-code document

error-code  服务器返回的错误代码

document  可以由一个斜杠(/)开头来指示一个本地URL(相对于DocumentRoot),或是提供一个能被客户端解释的完整的URL。此外还能提供一个可以被浏览器显示的消息。比如:

ErrorDocument 500http://www.entage.net/err500.html

ErrorDocument 404 /errors/bad_urls.html

ErrorDocument 403 "Sorry can‘t allow you access today"

25. EnableMMAP:指示httpd在递送中如果需要读取一个文件的内容,它是否可以使用内存映射。

语法:EnableMMAP On|Off

当处理一个需要访问文件中的数据的请求时,比如说当递送一个使用mod_include进行服务器端分析的文件时,如果操作系统支持,Apache将默认使用内存映射。

这种内存映射有时会带来性能的提高,但在某些情况下,您可能会需要禁用内存映射以避免一些操作系统的问题:

在一些多处理器的系统上,内存映射会减低一些httpd的性能;

在挂载了NFS的DocumentRoot上,若已经将一个文件进行了内存映射,则删除或截断这个文件会造成httpd因为分段故障而崩溃。

在可能遇到这些问题的服务器配置过程中,应当使用下面的命令来禁用内存映射:

26. EnableMMAP Off

对于挂载了NFS的文件夹,可以单独在<directory>段中指定禁用内存映射:

<Directory "/path-to-nfs-files">

EnableMMAP Off

</Directory>

27. EnableSendfile:控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送到客户端。

默认情况下,当处理一个请求并不需要访问文件内部的数据时(比如发送一个静态的文件内容),如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端而并不读

取文件。

这个sendfile机制避免了分开的读和写操作以及缓冲区分配,但是在一些平台或者一些文件系统上,最好禁止这个特性来避免一些问题:

一些平台可能会有编译系统检测不到的有缺陷的sendfile支持,特别是将在其他平台上使用交叉编译得到的二进制文件运行于当前对sendfile支持有缺陷的平台时;

在Linux上启用IPv6时,使用sendfile将会触发某些网卡上的TCP校验和卸载bug;

当Linux运行在Itanium处理器上的时候,sendfile可能无法处理大于2GB的文件;

对于一个通过网络挂载了NFS文件系统的DocumentRoot (比如:NFS或SMB),内核可能无法可靠的通过自己的缓冲区服务于网络文件。

如果出现以上情况,你应当禁用sendfile :

EnableSendfile Off

针对NFS或SMB,可以单独在<directory>段中指定禁用:

<Directory "/path-to-nfs-files">

EnableSendfile Off

</Directory>

28. include:在服务器配置文件中包含其它配置文件。

语法:Include file-path|directory-path

Shell风格(fnmatch())的通配符可以用于按照字母顺序一次包含多个文件。另外,如果Include指向了一个目录而不是一个文件,Apache将读入该目录及其子目录下的所有文件,并

依照字母顺序将这些文件作为配置文件进行解析。但是并不推荐这么做,因为偶尔会有临时文件在这个目录中生成,从而导致httpd启动失败。

文件的路径可以是一个完整的绝对路径(以一个斜杠开头),或是相对于ServerRoot目录的相对路径。

29. 设置动态加载的DSO模块

#如果需要提供基于文本文件的认证,加载此模块,否则注释掉

LoadModule authn_file_module modules/mod_authn_file.so

#如果需要提供基于DBM文件的认证,加载此模块,否则注释掉

#LoadModule authn_dbm_module modules/mod_authn_dbm.so

#如果需要提供匿名用户认证,加载此模块,否则注释掉

#LoadModule authn_anon_module modules/mod_authn_anon.so

#如果需要提供基于SQL数据库的认证,加载此模块,否则注释掉

#LoadModule authn_dbd_module modules/mod_authn_dbd.so

#如果需要在未正确配置认证模块的情况下简单拒绝一切认证信息,加载此模块,否则注释掉

LoadModule authn_default_module modules/mod_authn_default.so

#此模块提供基于主机名、IP地址、请求特征的访问控制,Allow、Deny指令需要,推荐加载。

LoadModule authz_host_module modules/mod_authz_host.so

#如果需要使用纯文本文件为组提供授权支持,加载此模块,否则注释掉

#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so

#如果需要提供基于每个用户的授权支持,加载此模块,否则注释掉

LoadModule authz_user_module modules/mod_authz_user.so

#如果需要使用DBM文件为组提供授权支持,加载此模块,否则注释掉

#LoadModule authz_dbm_module modules/mod_authz_dbm.so

#如果需要基于文件的所有者进行授权,加载此模块,否则注释掉

#LoadModule authz_owner_module modules/mod_authz_owner.so

#如果需要在未正确配置授权支持模块的情况下简单拒绝一切授权请求,加载此模块,否则注释掉

LoadModule authz_default_module modules/mod_authz_default.so

#如果需要提供基本的HTTP认证,加载此模块,否则注释掉,此模块至少需要同时加载一个认证支持模块和一个授权支持模块

LoadModule auth_basic_module modules/mod_auth_basic.so

##如果需要提供HTTP MD5摘要认证,加载此模块,否则注释掉,此模块至少需要同时加载一个认证支持模块和一个授权支持模块

#LoadModule auth_digest_module modules/mod_auth_digest.so

#此模块提供文件描述符缓存支持,从而提高Apache性能,推荐加载,但请小心使用

LoadModule file_cache_module modules/mod_file_cache.so

#此模块提供基于URI键的内容动态缓存(内存或磁盘),从而提高Apache性能,必须与mod_disk_cache/mod_mem_cache同时使用,推荐加载

LoadModule cache_module modules/mod_cache.so

#此模块为mod_cache提供基于磁盘的缓存管理,推荐加载

LoadModule disk_cache_module modules/mod_disk_cache.so

#此模块为mod_cache提供基于内存的缓存管理,推荐加载

LoadModule mem_cache_module modules/mod_mem_cache.so

#如果需要管理SQL数据库连接,为需要数据库功能的模块提供支持,加载此模块,否则注释掉(推荐)

#LoadModule dbd_module modules/mod_dbd.so

#此模块将所有I/O操作转储到错误日志中,会导致在日志中写入及其海量的数据,只建议在发现问题并进行调试的时候使用

#LoadModule dumpio_module modules/mod_dumpio.so

#如果需要使用外部程序作为过滤器,加载此模块(不推荐),否则注释掉

#LoadModule ext_filter_module modules/mod_ext_filter.so

#如果需要实现服务端包含文档(SSI)处理,加载此模块(不推荐),否则注释掉

#LoadModule include_module modules/mod_include.so

#如果需要根据上下文实际情况对输出过滤器进行动态配置,加载此模块,否则注释掉

LoadModule filter_module modules/mod_filter.so

#如果需要服务器在将输出内容发送到客户端以前进行压缩以节约带宽,加载此模块(推荐),否则注释掉

LoadModule deflate_module modules/mod_deflate.so

##如果需要记录日志和定制日志文件格式,加载此模块(推荐),否则注释掉

LoadModule log_config_module modules/mod_log_config.so

#如果需要对每个请求的输入/输出字节数以及HTTP头进行日志记录,加载此模块,否则注释掉

#LoadModule logio_module modules/mod_logio.so

#如果允许Apache修改或清除传送到CGI脚本和SSI页面的环境变量,加载此模块,否则注释掉

LoadModule env_module modules/mod_env.so

#如果允许通过配置文件控制HTTP的"Expires:"和"Cache-Control:"头内容,加载此模块(推荐),否则注释掉

LoadModule expires_module modules/mod_expires.so

#如果允许通过配置文件控制任意的HTTP请求和应答头信息,加载此模块,否则注释掉

LoadModule headers_module modules/mod_headers.so

#如果需要实现RFC1413规定的ident查找,加载此模块(不推荐),否则注释掉

#LoadModule ident_module modules/mod_ident.so

#如果需要根据客户端请求头字段设置环境变量,加载此模块,否则注释掉

LoadModule setenvif_module modules/mod_setenvif.so

#此模块是mod_proxy的扩展,提供Apache JServ Protocol支持,只在必要时加载

#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

#此模块是mod_proxy的扩展,提供负载均衡支持,只在必要时加载

#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

#如果需要根据文件扩展名决定应答的行为(处理器/过滤器)和内容(MIME类型/语言/字符集/编码),加载此模块,否则注释掉

LoadModule mime_module modules/mod_mime.so

#如果允许Apache提供DAV协议支持,加载此模块,否则注释掉

#LoadModule dav_module modules/mod_dav.so

#此模块生成描述服务器状态的Web页面,只建议在追踪服务器性能和问题时加载

#LoadModule status_module modules/mod_status.so

#如果需要自动对目录中的内容生成列表(类似于"ls"或"dir"命令),加载此模块(会带来安全问题,不推荐),否则注释掉

#LoadModule autoindex_module modules/mod_autoindex.so

#如果需要服务器发送自己包含HTTP头内容的文件,加载此模块,否则注释掉

#LoadModule asis_module modules/mod_asis.so

#如果需要生成Apache配置情况的Web页面,加载此模块(会带来安全问题,不推荐),否则注释掉

#LoadModule info_module modules/mod_info.so

#如果需要在非线程型MPM(prefork)上提供对CGI脚本执行的支持,加载此模块,否则注释掉

#LoadModule cgi_module modules/mod_cgi.so

#此模块在线程型MPM(worker)上用一个外部CGI守护进程执行CGI脚本,如果正在多线程模式下使用CGI程序,推荐替换mod_cgi加载,否则注释掉

#LoadModule cgid_module modules/mod_cgid.so

#此模块为mod_dav访问服务器上的文件系统提供支持,如果加载mod_dav,则也应加载此模块,否则注释掉

#LoadModule dav_fs_module modules/mod_dav_fs.so

#如果需要提供大批量虚拟主机的动态配置支持,加载此模块,否则注释掉

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

#如果需要提供内容协商支持(从几个有效文档中选择一个最匹配客户端要求的文档),加载此模块(推荐),否则注释掉

LoadModule negotiation_module modules/mod_negotiation.so

#如果需要指定目录索引文件以及为目录提供"尾斜杠"重定向,加载此模块(推荐),否则注释掉

LoadModule dir_module modules/mod_dir.so

#如果需要处理服务器端图像映射,加载此模块,否则注释掉

#LoadModule imagemap_module modules/mod_imagemap.so

#如果需要针对特定的媒体类型或请求方法执行CGI脚本,加载此模块,否则注释掉

#LoadModule actions_module modules/mod_actions.so

#如果希望服务器自动纠正URL中的拼写错误,加载此模块(推荐),否则注释掉

LoadModule speling_module modules/mod_speling.so

#如果允许在URL中通过"/~username"形式从用户自己的主目录中提供页面,加载此模块,否则注释掉

#LoadModule userdir_module modules/mod_userdir.so

#此模块提供从文件系统的不同部分到文档树的映射和URL重定向,推荐加载

LoadModule alias_module modules/mod_alias.so

#如果需要基于一定规则实时重写URL请求,加载此模块(推荐),否则注释掉

LoadModule rewrite_module modules/mod_rewrite.so

时间: 2024-10-08 22:08:15

Apache2 httpd.conf 配置详解(一)的相关文章

Apache2 httpd.conf 配置详解

Apache2 httpd.conf 配置详解 <第一部分> 常用配置指令说明 1. ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录.默认为安装目录,不需更改. 语法:ServerRoot directory-path 如: ServerRoot "/usr/local/apache-2.2.6" 注意,此指令中的路径最后不要加 / . 2. Listen:指定服务器监听的IP和端口.默认情况下Apa

Apache2 httpd.conf 配置详解 (二)

DocumentRoot "/usr/local/apache-2.2.6/htdocs" #设置WEB文档根目录的默认属性 <Directory />     Options FollowSymLinks     AllowOverride None     Order deny,allow     Deny from all </Directory> #设置DocumentRoot指定目录的属性 <Directory "/usr/local/

httpd.conf配置详解

## 基于 NCSA 服务的配置文件.##这是Apache服务器主要配置文件.#它包含服务器的影响服务器运行的配置指令.#参见<http://httpd.ache.org/doc-2.0/>以取得关于这些指令的详细信息##不要只是简单的阅读这些指令信息而不去理解它.#这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告.##这些配置指令被分为下面三个部分:#1. 控制整个Apache服务器行为的部分(即全局环境变量)#2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置

【转】Apache 的 httpd.conf 配置详解

Apache 的 httpd.conf 配置详解 原文链接 http://www.php100.com/html/webkaifa/apache/2009/0418/1192.html ServerRoot /usr/local ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerR oot定义的路径之下. ScoreBoardFile /var/run

Apache2.4之httpd.conf配置详解

1.ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录.默认为安装目录,不需更改. 语法:ServerRoot    /path/to/directory 例如:ServerRoot    "/usr/local/apache" 2..PidFile:定义其pid文件所在的位置 语法:PidFile    /path/to/apache/pid 例如:Pidfile    "/var/run/httpd/h

Apache httpd.conf配置详解

常用配置指令说明 1. ServerRoot:服务器的基础目录,一般来说它将包含conf/和logs/子目录,其它配置文件的相对路径即基于此目录.默认为安装目录,不需更改. 语法:ServerRoot directory-path 如: ServerRoot "/usr/local/apache-2.2.6" 注意,此指令中的路径最后不要加 / . 2. Listen:指定服务器监听的IP和端口.默认情况下Apache会在所有IP地址上监听.Listen是Apache2.0以后版本必须

第二十天 TCP 及socket通信原理、http协议及web服务、httpd核心配置详解

一.TCP及socket通信原理详解 二.http协议及web服务原理(一) 三.http协议及web服务原理(二) 四.httpd核心配置详解 1.tcp.udp是一种传输协议,实现进程地址标记,套接字是一个虚拟设备,用来表明主机上的某个进程      众所周知:0-1023:管理员才有权限使用,永久地分配给某应用使用(由IANA分配)      注册端口:1024-41951:只有一部分被注册,分配原则上非特别严格.      动态端口或私有端口:41952-65535:由内核分配临时端口,

apache配置文件:http.conf配置详解

Apache的配置文件http.conf参数含义详解 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改.主站点的配置(基本配置) (1) 基本配置:ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置.其它指定的目录如果没有指定绝对路径,则目录是相对于该目录. PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置. Liste

马哥教育第二十一天httpd高级配置详解、编译安装

1.httpd.conf配置文件                 ★设置默认字符集                         AddDefaultCharset ★CGI脚本路径                         ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"指定cgi路径别名                               bash写CGI脚本:                                  所有