admin 管理员组文章数量: 887031
2023年12月25日发(作者:显示accessdenied)
Apache常用模块和参数
1 Apache服务配置指令
1.1 基本配置命令
AccessFileName
语法 AccessFileName filename
默认值 AccessFileName .htaccess
作用域 server config, virtual host
此命令是针对目录的访问控制文件的名称;
AddDefaultCharset
语法 AddDefaultCharset On|Off|charset
默认值 AddDefaultCharset Off
作用域 server config, virtual host, directory, .htaccess
用于指定默认的字符集,在HTTP的回应信息中,若在HTTP头中未包含任何关于内容字符集类型的参数时,此指令指定的字符集添加到HTTP头中,此时将覆盖网页文件中通过META标记符所指定的字符集.默认字符集为: AddDefaultCharset UTF-8 若显示中文时出现乱码,解决方法是将字符集设置为GB2312,即: AddDefaultCharset GB2312
DefaultType
语法 DefaultType MIME-type
默认值 DefaultType text/plain
作用域 server config, virtual host, directory, .htaccess
服务器不知道文件类型时,用缺省值通知客户端;
DocumentRoot
说明语法
组成网络上可见的主文档树的根目录
DocumentRoot
directory-path
默认值DocumentRoot /usr/local/apache2/htdocs
作用域server config, virtual host
设置Apache提供文件服务的目录;
ErrorDocument
说明语法
当遇到错误的时候服务器将给客户端什么样的应答
ErrorDocument
error-codedocument
作用域覆盖项server config, virtual host, directory, .htaccess
FileInfo
设置当有问题发生时,Apache所做的反应;
ForceType
说明语法
强制所有匹配的文件被作为指定的MIME类型进行伺服
ForceType
MIME-type|None
作用域directory, .htaccess
覆盖项FileInfo
当此指令放入.htaccess文件或
ForceType image/gif
请注意:与DefaultType指令不同,此指令将覆盖所有的mime类型关联,包括标识文件类型的扩展名。
你可以通过使用"None"覆盖任何ForceType设置:
使用不包含在Apache安装中的模块的命令
Include
包含其它的配置文件
Listen
默认值:80
Listen命令告诉服务器接受来自指定端口或者指定地址的某端口的请求,如果listen仅指定了端口,则服务器会监听本机的所有地址;如果指定了地址和端口,则服务器只监听来自该地址和端口的请求
Options
说明语法
配置在特定目录中可以使用哪些特性
Options [+|-]option [[+|-]option] ...
默认值Options All
作用域server config, virtual host, directory, .htaccess
控制某个特定目录所能使用的服务器功能;
其值有:
None:表示只能浏览,
FollowSymLinks:允许页面连接到别处,
ExecCGI:允许执行CGI,
MultiViews:允许看动画或是听音乐之类的操作,
Indexes:允许服务器返回目录的格式化列表,
Includes:允许使用SSI。这些设置可以复选。
All:则可以做任何事,但不包括MultiViews。
AllowOverride:加None参数表示任何人都可以浏览该目录下的文件。
另外的参数有:FileInfo、AuthConfig、Limit。
Port
默认值:Port 80
设置服务器监听的网络端口;
ServerAdmin
设定管理员的电子邮件地址;
ServerName
设置服务器用于辨识自己的主机名和端口号,该设置仅用于重定向和虚拟主机的识别,对于Internet的Web服务器,应该保证该名称是DNS服务器中的有效记录.默认值没有对此进行设置,管理员应用根据实际设置情况进行配置
ServerRoot
默认值:ServerRoot /etc/httpd/
用于设置服务器的根目录,默认位置为/etc/httpd,服务器根目录是Apache配置文件、日志文件、模块文件等相关文件的基础目录
SetHandler
说明
语法
强制所有匹配的文件被一个指定的处理器处理
SetHandler handler-name|None
作用域 server config, virtual host, directory, .htaccess
当这个指令放入.htaccess或
SetHandler imap-file
User && Group
指定服务器用来回答请求的用户ID和组ID;
1.2 性能和资源配置命令
1.1.1 进程控制
MaxClients
默认值:MaxClients 150
设定能同时服务的请求数目;
MaxRequestsPerChild
默认值:MaxRequestsPerChild 0
设置每个进程能够响应的最大请求数,0表示不限制;
MaxSpareServers
默认值:MaxSpareServers 10
设定最大空闲服务进程数目;MinSpareServers设定最小空闲服务进程数目;
ServerType
默认值:ServerType standalone
设定系统执行服务器的方式;
StartServer
默认值:StartServer 5
服务器启动时建立的子进程的数目;
ThreadsPerChild
默认值:ThreadsPerChild 50
设定Apache服务器使用的线程数;
Timeout
默认值:Timeout 120
设定处理一个请求的超时值;定义客户程序和服务器连接的超时间隔(秒)超过这个时间间隔后服务器将断开与客户机的连接
1.1.2 建立持续连接
KeepAlive
默认值:KeepAlive ON
设定在Apache中是否允许客户端同时提出多个请求,在HTTP 1.0中应禁用,但在HTTP 1.1中就开启。建议开启,即ON
KeepAliveTimeout
默认值: KeepAliveTimeout 5
服务器完成一次请求后开始计时,如果在此参数设置的时间间隔内没有接收到客户程序的下一次请求,服务器就断开连接,即关闭TCP连接.默认值为15秒
MaxKeepAliveRequests
默认值:MaxKeepAliveRequests 100
用于设置在一个持续连接期间允许的最大HTTP请求数目,若设置为0,则表示没有限制;默认设置为100,事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。
LimitRequestBody
说明 限制客户端发送的HTTP请求体的最大字节长度
语法 LimitRequestBody bytes 默认值 LimitRequestBody 0
bytes在0(意味着无限制)到2147483647(2GB)间限制了请求体所允许的字节数。
LimitRequestBody可以让用户在其作用范围内(整个服务器、特定目录、特定文件、特定位置)设置一个允许客户端发送的HTTP请求体的最大字节长度的限制。如果客户端的请求超出了这个限制,服务器会回应一个错误而不是伺服这个请求。一个普通请求的信息体在很大程度上取决于资源的自然属性和这个资源允许的方法。CGI脚本经常用消息体把表单的信息传递给服务器。使用PUT方法至少会需要与服务器期望从这个资源得到的信息量差不多大小的值。
此指令给了服务器管理员更大的可控性以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。
LimitRequestLine
说明 限制接受客户端发送的HTTP请求行的字节数
语法 LimitRequestLine bytes 默认值 LimitRequestLine 8190
bytes将设置HTTP请求行的字节数限制。
LimitRequestLine指令允许服务器管理员增加或减少客户端HTTP请求行允许大小的限制。因为请求行包括HTTP方法、URI、协议版本,所以LimitRequestLine指令会限制请求URI的长度。服务器会需要这个值足够大以装载它所有的资源名,包括可能在GET请求中所传递的查询部分的所有信息。
这个指令给了服务器管理员更大的可控性以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。
LimitXMLRequestBody
说明
语法
限制基于XML的请求体的大小
LimitXMLRequestBody bytes 默认值 LimitXMLRequestBody 1000000
限制基于XML的请求体大小的最大字节数,"0"将禁用这一检查。
1.1.3 控制系统资源
RLimitCPU
控制Apache进程占用CPU的时间;
RLimitMEM
控制Apache进程的内存占用量;
RLimitNPROC
说明 限制由Apache子进程派生的进程所派生的进程数目
语法 RLimitNPROC number|max [number|max]
默认值 未定义,使用操作系统默认值
设定每个用户并发进程的最大数目;使用一个或两个参数。第一个参数设置了所有进程的软资源限制,第二个参数设置了最大资源限制。两个参数均可设置为一个数值或是"max"以表示设置为操作系统允许的最大值。增大此资源限制最大值需要以root运行服务器或是在初始化启动语句中进行设置。
这个限制将作用于Apache子进程服务的请求所衍生出的进程,而不是Apache子进程本身。这个范围包括CGI脚本和SSI执行命令,但不包括所有从Apache父进程衍生出的进程。比如管道日志。
1.1.4 动态装载模块
AddModule
装入当前服务器不使用的预编译模块;
ClearModuleList
清除预编译模块列表;
1.3 标准容器命令
和
1.4 虚拟主机命令
定义特定的虚拟主机。
NameVirtualHost
如果使基于名称的虚拟主机,则要使用此命令。
ServerAlias
针对含有多个IP名称的基于名称的虚拟主机。可以使用单独的虚拟主机命令定义所有的IP
名称。
1.5 日志命令
ErrorLog
默认值:ErrorLog logs/error_log
设定错误日志文件。ErrorLog指令指定了当服务器遇到错误时记录错误日志的文件。如果file-path不是一个以斜杠(/)开头的绝对路径,那么将被认为是一个相对于ServerRoot的相对路径。如果file-path以一个管道符号(|)开头,那么会为它指定一个命令来处理错误日志。
LogLevel
说明
语法
控制错误日志的详细程度
LogLevel level 默认值 LogLevel warn
LogLevel用于调整记录在错误日志中的信息的详细程度。(参见ErrorLog指令)。可以选择下列level,依照重要性降序排列:
Level
描述
紧急(系统无法使用)
例子
"Child cannot open lock file. Exiting"
emerg
alert
必须立即采取"getpwuid: couldn't determine user name from uid"
措施
"socket: Failed to get a socket, exiting child"
crit
致命情况
"Premature end of script headers"
error
错误情况
"child process 1234 did not exit, sending another SIGHUP"
warn
警告情况
一般重要情况
"httpd: caught SIGBUS, attempting to dump core in ..."
notice
info
普通信息
debug
调试信息
"Server seems busy, (you may need to increase StartServers, or
Min/MaxSpareServers)..."
"Opening config file ..."
当指定了某个级别时,所有级别高于它的信息也会被同时记录。比如,指定
LogLevel info ,则所有notice和warn级别的信息也会被记录。
LockFile
默认值:LockFile logs/
用来设置锁文件的路径,确保只有Apache服务器才拥有此文件的读写权限。
PidFile
默认值:PidFile logs/
设定Apache服务器记录守护进程的进程ID的文件。
ScoreBoardFile
默认值:ScoreBoardFile logs/apache_status
设置存储内部进程数据文件的路径。
1.6 认证安全命令
AllowOverride
确定允许存在于.htaccess文件中的指令类型。
语法:AllowOverride All|None|directive-type [directive-type] ...
默认值:AllowOverride All
当服务器发现一个.htaccess文件(由AccessFileName指定)时,它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置指令。
如果此指令被设置为None ,那么.htaccess文件将被完全忽略。事实上,服务器根本不会读取.htaccess文件。
当此指令设置为 All时,所有具有".htaccess"作用域的指令都允许出现在.htaccess文件中。
directive-type可以是下列各组指令之一:
AuthConfig
允许使用与认证授权相关的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile,
AuthName, AuthType, AuthUserFile, Require, 等)。
FileInfo
允许使用控制文档类型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority,
SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文档元数据的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch,
CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。
Indexes
允许使用控制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType,
DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions,
ReadmeName, 等)。
Limit
允许使用控制主机访问的指令(Allow, Deny, Order)。
Options[=Option,...]
允许使用控制指定目录功能的指令(Options和XBitHack)。可以在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制允许Options指令使用哪些选项。
AuthName
为某个要求认证的资源设定标号。
Authtype
为某个目录选择使用的认证类型。
HostNameLookups
默认值:HostNameLookups Off
设置Apache允许或者禁止为每个请求而进行DNS查找。
require
这个指令选择经过验证可以存取目录的使用者。
Satisfy
如果已经建立了基本的HTTP认证配置,且同时使用了allow和require命令,则可用使用此命令来配置Apache在什么条件才能满足认证的要求。
2 标准模块
2.1 mod_access
提供以客户端的主机名称或者IP地址为基础的存取控制。
allow
典型应用是在
deny
典型应用是在
order
用来控制allow指令和deny指令的次序。
2.2 mod_actions
能够提供基于MIME类型的CGI脚本或HTTP请求方法。
Action
对特定的MIME-type指定一个操作。
Script
此命令和Action相似,但不是将操作和MIME-type联系起来,而是将操作和HTTP的请求方法联系起来,如GET、PUT等。
2.3 mod_alias
Alias
该指令可以是文件存放在DocumentRoot之外的本地文件系统里。
Redirect
该指令将旧的URL重定向到新的URL。
RedirectMatch
与Redirect类似,但它使用规则表达式而不是简单的URL。
RedirectTemp
和Redirect类似,它让客户端知道重定向只是临时的。
RedirectPermanent
和Redirect类似,它让客户端知道重定向是永久的。
ScriptAlias
该指令除了把目标目录标记为包含CGI脚本以外,和Alias功能相同。
ScriptAliasMatch
该指令出使用规则表达式以外,和ScriptAlias命令相似。
2.4 mod_asis
允许定义文件的类型,这样,Apache可以不加HTTP头标(headers)传送它们。
2.5 mod_auth
AuthGroupFile
该指令用来设置包含用来执行用户验证的使用者组列表的文本文件。
AuthUserFile
该指令用来设置包含用来执行用户验证的使用者以及密码列表的文本文件。
1.1 mod_auth_anno
允许以匿名方式访问需要认证的区域。
1.2 mod_auth_db
用户认证数据库
1.3 mod_auth_external
使Apache支持第三方认证。
1.1 mod_auth_dbm
支持使用DBM文件存储基本HTTP认证。
AuthDbmGroupFile
设定包含代验证用户名组列表的文件名。
AuthDbmUserFile
设定包含代验证用户名和密码列表的文件名。
1.2 mod_auth_digest
使用MD5算法来进行用户的认证工作。使用它时,就不能使用mod_digest模块。
1.3 mod_autoindex
当由DriectoryIndex指定的索引文件不存在时,该模块使Apache生成动态模块列表。
AddAlt
当FancyIndexing处于打开状态时,此命令设置代替图标的正文。
AddAltByEncoding
当FancyIndexing处于打开状态时,此命令用来为一个或多个MIME-encoding指定正文。
AddAltByType
此命令用于为文件设置代用正文以代替用于FancyIndexing的图标。
AddDescription
该命令设定某文件要显示的描述,供象征索引(FancyIndexing)使用。
AddIcon
该命令设定显示在文件名之后的图标供象征索引使用。
AddIconByEncoding
该命令设定显示在有MIME-encoding的文件名之后的图标供象征索引使用。
AddIconByType
该命令设定显示在MIME-type的文件名之后的图标供象征索引使用。
DefaultIcon
设定不知道指定的图标是什么的时候显示的图标。
DirectoryIndex
设定当客户端没有指定以文件形式结尾的目录名称请求该目录的索引时所要找寻的来源列表。
FancyIndexing
设定目录的象征索引列表。
HeaderNmae
设定插入索引列顶部的文件名。
IndexIgnore
设定列目录时需要隐藏的文件。
IndexOptions
设定进行目录索引时的选项。
ReadmeName
设定要附加到索引文件后面的文件名。
1.4 mod_cgi、mod_cgid、mod_fastcgi、mod_fcgid
支持CGI脚本。目前apache可以运行的cgi脚本的扩展支持有四种:CGI,cgid,fastcgi,fcgid。其中cgi、cgid是以cgi方式运行,fastcgi是对cgi的改进版本,它是为解决CGI的性能问题而开发的一种技术。可以建立常驻 (long-live) 型的 CGI进程。Fcgid为fastcgi的改进版本,加强了进程管理和提供更灵活的配置,可以看成对fastcgi的升级改进。
CGI脚本执行的环境变量
SERVER-NAME:运行CGI序为机器名或IP地址。
SEUVER-INTERFACE:WWW服务器的类型,如:CERN型或NCSA型。
SERVER-PROTOCOL:通信协议,应当是HTTP/1.0。
SERVER-PORT:TCP端口,一般说来web端口是80。
HTTP-ACCEPT:HTTP定义的浏览器能够接受的数据类型。
HTTP-REFERER:发送表单的文件URL。(并非所有的浏览器都传送这一变量)
HTTP-USER-AGENT:发送表单的浏览器的有关信息。
GETWAY-INTERFACE:CGI程序的版本,在UNIX下为 CGI/1.1。
PATH-TRANSLATED: PATH-INFO中包含的实际路径名。
PATH-INFO:浏览器用GET方式发送数据时的附加路径。
SCRIPT-NAME: CGI程序的路径名。
QUERY-STRING:表单输入的数据,URL中间号后的内容。
REMOTE-NOST:发送程序的主机名,不能确定该值。
REMOTE-ADDR:发送程序的机器的IP地址。
REMOTE-USBR:发送程序的人名。
CONTENT-TYPE:POST发送,一般为applioation/xwww-form-urlencoded。
CONTENT-LENGTH:POST方法输入的数据的字节数。
1.4.1 mod_cgi
CGI 环境变量
PATH_INFO
如果显式设置了AcceptPathInfo指令为 off ,这个变量将不可用。如果没有明确设置AcceptPathInfo ,默认的行为是mod_cgi将会接受路径信息(URI里脚本文件名之后的/more/path/info),即使服务器核心对请求的附加路径信息返回"404 NOT FOUND"错误。省略AcceptPathInfo指令与将它设置为 On 对mod_cgi请求具有相同的效果。
REMOTE_HOST
这个变量只有在HostnameLookups指令被设置为"on"(默认是"off")并且对访问主机的DNS反查确实找到了主机名时才被设置。
REMOTE_IDENT
这个变量只有在IdentityCheck被设置为 on 并且访问主机支持识别协议时才被设置。注意这个变量不能信赖,因为它很容易被假冒。而且如果客户端与服务器之间存在代理的话,这个变量通常完全没有用处。
REMOTE_USER
这个变量只有当CGI脚本需要身份验证时才被设置。
CGI伪指令
ScriptLog
设置了CGI脚本错误日志文件的位置。如果没有设置ScriptLog,就不会创建错误日志。如果设置了,所有CGI错误都会被记入作为指令参数的文件中。如果是一个相对路径则以ServerRoot为参照。默认值:logs/cgi_log
ScriptLogBuffer
限制记入日志文件的PUT或者POST内容的大小,防止如果接收到很大内容时日志文件的尺寸增加得太快太大。默认地,最多纪录1024字节,但这个数字可以用此指令改变。
ScriptLogLength
可以用于限制CGI脚本文件的大小。由于日志文件对每个CGI错误纪录(所有请求头、所有脚本输出)许多信息,它有可能会变成一个很大的文件。为了防止无限制的增长引起的问题,这个指令可以用来给CGI日志文件的大小设置一个上限。如果文件大小达到了这个限制,就不会再有信息被写入日志。
1.4.2 mod_cgid
在线程型MPM(worker)上用一个外部CGI守护进程执行CGI脚本,仅用于Unix系统上的线程型MPM。
除了优化和下面额外的ScriptSock指令,mod_cgid表现得与mod_cgi非常相似。
ScriptSock
设置用来与CGI守护进程通信的套接字文件名前缀(其后附加父进程PID组成完整的文件名)。这个套接字将会用启动Apache服务器的父进程用户权限(通常是root)打开。为了维护与CGI脚本通讯的安全性,不允许其他用户拥有写入套接字所在目录的权限是很重要的。
1.4.3 mod_fastcgi
FastCgiAccessChecker
FastCgiAccessChecker 伪指令用于将 FastCGI 应用程序定义为每个目录的访问验证器。Apache 访问阶段在用户认证之前,并且是否允许对所请求资源进行访问的决策取决于随此请求提交的 HTTP 头。当访问验证决策存在动态组件(如一天中的时间,或者域计数是否最新)时,基于 FastCGI 的授权程序十分有用。
FastCgiAccessChecker 是在 Directory 或 Location 容器中使用的。
FastCgiAccessChecker fcgi-bin/access-checker
Mod_fastcgi 几乎发送所有标准环境变量,这些环境变量通常可用于 CGI/FastCGI 请求处理程序。所有由 FastCGI access-checker 应用程序以成功响应(状态:200)返回的头都将作为环境变量传递给子进程(CGI/FastCGI 调用)。所有以不成功响应返回的头将传递给客户机。遵从 FastCGI 规范的行为可通过使用“-compat”选项获得。
Mod_fastcgi 将环境变量“FCGI_APACHE_ROLE”设置成“ACCESS_CHECKER”,以表明所执行的(Apache 特定的)授权程序阶段。
FastCgiAccessCheckerAuthoritative
如果 FastCGI 应用程序允许访问失败,则将 FastCgiAccessCheckerAuthoritative 伪指令明确设置成 Off,将使访问检查可传递给较低级的模块(如 Configuration 和 module.c 文件中定义的)。
FastCgiAuthenticator
用于将 FastCGI 应用程序定义为每个目录的认证器。认证器通过将所提供的用户名和密码与
已知用户和密码数据库或列表进行匹配,以验证请求者的身份。当用户数据库是在现有的独立程序中进行维护时,或者当它驻留在除 Web 服务器外的其它机器上时,基于 FastCGI 的认证器十分有用。
FastCgiAuthenticator 是在 Directory 或 Location 容器中使用的,且它必须包含 AuthType
和 AuthName 伪指令。仅支持“基本”用户认证类型。此类型需要一个 require 或
FastCgiAuthorizer 伪指令才能正常运作。
AuthType Basic
AuthName ProtectedRealm
FastCgiAuthenticator fcgi-bin/authenticator
require valid-user
FastCgiConfig
定义了所有动态 FastCGI 应用程序的缺省参数。
选项可以包含下列任意一项(不区分大小写):
appConnTimeout n (0 秒)等待与 FastCGI 应用程序的连接完成的秒数,或者 0 表明使用阻塞 connect()。如果超时到期,则将导致 SERVER_ERROR。对于非零值,这表示 select()
中用于写入由非阻塞 connect() 返回的文件描述符的时间量。在许多平台上,非阻塞
connect() 很容易产生问题。另见 -idle-timeout;此选项将产生类似的结果,但其方式更为简便。
idle-timeout n (30 秒)在请求异常终止并且事件记录(错误日志级别)之前,允许
FastCGI 保持不活动的秒数。只有当与 FastCGI 应用程序的连接暂挂时,此不活动定时器才适用。如果请求进入应用程序的请求队列,而此应用程序在此期间没有响应(通过写和刷新),则此请求将异常终止。如果与应用程序的通信已完成,而与客户机的通信尚未完成(响应被高速缓存),则此超时不适用。
autoUpdate 无此选项使得 mod_fastcgi 在处理每个请求之前,检查磁盘上应用程序的寿命。如果此应用程序的版本更加新,则通知进程管理器,并杀死所有正在运行的此应用程序的实例。最好将这一类型的功能内置到应用程序中(例如,每隔 100 个请求检查磁盘上是否有更新的版本,如果有就退出)。当此选项与 -restart 一起使用时,可能存在一个明显的问题(错误)。
gainValue n (0.5) 一个 0 至 1 间的浮点值,它在当前运行的动态 FastCGI 应用程序的指数衰减连接次数负载因子计算中用作指数。旧值通过 (1 – gainValue) 进行调节的,所以当与当前值(通过 gainValue 调节)比较时,该值越小,其权值就越重。
initial-env 名称[=值] 无当应用程序的实例产生时,在初始环境中传递的“名称-值”对。要传递来自 Apache 环境的变量,请不要提供“=”(如果变量实际不在此环境中,则其定义不带值)。要定义不带值的变量,提供不带任何值的“=”。此选项可重复使用。
init-start-delay n (1 秒)此应用程序各实例产生之间的最小秒数。此延迟减少了服务器初始化时系统发出的需求。
killInterval n(300 秒) killInterval 确定了进程管理器内动态应用程序实例杀死策略的实现频率。该数值越低,策略就越活跃;相反该数值越高,则策略越不活跃。
listen-queue-depth n (100) 由此应用程序的所有实例共享的 listen() 队列的深度(也称为累积)。深度较大的侦听队列使服务器能在不拒绝请求的情况下,应付瞬时负载波动;它
不会增加吞吐量。添加附加应用程序实例会增加吞吐量及执行,这取决于应用程序和主机。
maxClassProcesses n (10) 允许任何一个 FastCGI 应用程序运行的最大动态 FastCGI 应用程序实例数。
maxProcesses n (50) 在任何时候允许运行的最大动态 FastCGI 应用程序实例数。
minProcesses n (5) 任何时候允许运行,且无须由进程管理器(因没有需求)杀死的最小动态 FastCGI 应用程序实例数。
multiThreshhold n (50) 一个 0 至 100 间的整数,用于确定是否终止任一 FastCGI 应用程序实例。如果应用程序当前有多个实例在运行,则此属性用于决定是否终止其中一个实例。如果只保留有一个实例,则替代使用 singleThreshhold。
pass-header header 无请求环境中传递的 HTTP 请求头的名称。此选项使得头的内容(例如 Authorization)可用于 CGI 环境。
priority n (0) 为应用程序实例指定的进程优先级(使用 setpriority())。
processSlack n(5 秒)如果当前正在运行的所有动态 FastCGI 应用程序数总和超过了
maxProcesses – processSlack,则进程管理器将调用杀死策略。此操作可通过在不活动的应用程序实例数到达 maxProcesses 之前杀死一些活动最不频繁的应用程序实例,从而改善高负载时的性能。
restart 无此选项使进程管理器能在发生故障时重新启动动态应用程序(与静态应用程序类似)。
restart-delay n (5 秒)重新产生此应用程序失败实例之间的最小秒数。此延迟避免了中断应用程序占用过多的系统资源。
singleThreshhold n (0) 一个 0 至 100 间的整数,用于确定是否可终止 FastCGI 应用程序的最后一个实例。如果进程管理器计算出应用程序的负载因子低于指定的阈值,则将终止最后一个实例。指定一个接近 1 的值,以使您的可执行程序以“idle”方式长时间运行。如果内存或 CPU 时间是主要因素,则接近 100 的值更为适用。值为 0 将阻止终止应用程序的最后一个实例;该值也是缺省值。建议不要更改此缺省值(尤其在设置了 -appConnTimeout
的情况下)。
startDelay n(3 秒)尝试连接到动态 FastCGI 应用程序时,Web 服务器等待的秒数。如果此间隔到期,则将通知进程管理器希望启动应用程序的另一个实例。startDelay 必须小于 appConnTimeout 才有效。 updateInterval n (300 秒) updateInterval 确定了执行统计信息分析,以确定动态 FastCGI 应用程序结果的频率。
FastCgiExternalServer
服务器配置,语法:
FastCgiExternalServer 文件名 -host 主机名端口 [-appConnTimeout n]
FastCgiExternalServer 文件名 -socket 文件名 [-appConnTimeout n]
选项可以包含下列任意一项(不区分大小写):
appConnTimeout n (0 秒)等待到 FastCGI 应用程序的连接完成的秒数,0 表明使用阻塞 connect()。如果此超时到期,则将导致 SERVER_ERROR。对于非零值,这是指 select()
中用于写入由非阻塞 connect() 返回的文件描述符的时间量。在许多平台上,非阻塞
connect() 很容易产生问题。请参阅 -idle-timeout;此选项将产生类似的结果,但其方式更为简便。
idle-timeout n (30 秒)在请求异常终止,并且事件记录(错误日志级别)之前,允许
FastCGI 应用程序保持不活动的秒数。只有当与 FastCGI 应用程序的连接暂挂时,此不活动定时器才适用。如果请求进入应用程序的请求队列,而此应用程序在此期间没有响应(通过写和刷新),则此请求将异常终止。如果与应用程序的通信已完成,而与客户机的通信尚未
完成(响应被高速缓存),则此超时不适用。
flush 无当从应用程序接收到数据时将其强制写入客户机。缺省情况下,mod_fastcgi 将对数据高速缓存,以快速释放此应用程序。
host 主机名:端口无应用程序用于与 Web 服务器通信的主机名或 IP 地址和 TCP 端口号 (1-65535)。-socket 和 -host 选项是互斥的。
Pass-header header 无请求环境中传递的 HTTP 请求头的名称。此选项使头的内容成为可用,通常头的内容(例如 Authorization)不可用于 CGI 环境。
socket 文件名无 UNIX:应用程序用于与 Web 服务器通信的 UNIX 域套接字的文件名。此文件名相对于 FastCgiIpcDir。-socket 和 -port 选项是互斥的。 Windows NT:应用程序用于与 Web 服务器通信的管道名。此名称相对于FastCgiIpcDir。-socket 和 -port 选项是互斥的。
FastCgiServer
服务器配置,语法 – FastCgiServer 文件名选项选项 …
缺省情况下,进程管理器会使用下面指定的缺省配置(圆括号中)启动应用程序的一个实例。如果由于某些原因致使静态应用程序实例失效,mod_fastcgi 将产生另一个实例以进行替换,并记录此事件(警告日志级别)。
选项可为下列之一(不区分大小写):
appConnTimeout n (0 秒)等待到 FastCGI 应用程序的连接完成的秒数,0 表明使用阻塞 connect()。如果此超时到期,则将导致 SERVER_ERROR。对于非零值,这是指 select()
中用于写入由非阻塞 connect() 返回的文件描述符的时间量。在许多平台上,非阻塞
connect() 很容易产生问题。请参阅 idle-timeout, 它将产生类似的结果,但其方式更为简便。
idle-timeout n (30 秒)在请求异常终止并且事件记录(错误日志级别)之前,允许
FastCGI 保持不活动的秒数。只有当与 FatCGI 应用程序的连接暂挂时,此不活动定时器才适用。如果请求进入应用程序的请求队列,而此应用程序在此期间没有响应(通过写和刷新),则此请求将异常终止。如果与应用程序的通信已完成,而与客户机的通信尚未完成(响应被高速缓存),则此超时不适用。
initial-env 名称[=值] 无] 无在 FastCGI 应用程序初始环境中传递的“名称-值”对。要传递来自 Apache 环境的变量,请不要提供“=”(变量实际不在环境中,其定义不带值)。要定义不带值的变量,提供不带值的“=”。此选项可重复使用。I
nit-start-delay n(1 秒)此应用程序各实例产生之间的最小秒数。此延迟减少了服务器初始化时系统发出的需求。
Flush 无当从应用程序接收到数据时将其强制写入客户机。缺省情况下,mod_fastcgi 将对数据高速缓存,以快速释放此应用程序。
Listen-queue-depth n (100) 此应用程序的所有实例共享的 listen() 队列的深度(也称为累积)。较深的侦听队列使服务器能在不拒绝请求的情况下,应付瞬时负载波动。此选项不会增加吞吐量。添加附加应用程序实例会增加吞吐量及执行,这取决于应用程序和主机。
Pass-header header 无请求环境中传递的 HTTP 请求头的名称。此选项使得头的内容(例如 Authorization)可用于 CGI 环境。
processes n (1) 服务器初始化时产生的应用程序实例数。 Priority n (0) 为应用程序实例指定的进程优先级(使用 setpriority())。
port n 无应用程序用于与 Web 服务器通信的 TCP 端口号 (1-65535)。此选项使得能从网络上的其它机器访问此应用程序。-socket 和 -port 选项是互斥的。
Restart-delay n (5 秒)重新产生此应用程序失败实例之间的最小秒数。此延迟避免了
中断应用程序占用过多的系统资源。
Socket 文件名 (gen’d) UNIX:应用程序用于与 Web 服务器通信的 UNIX 域套接字的文件名。此模块在 FastCgiIpcDir 所指定的目录中创建套接字。该选项使得同一机器上的其它应用程序(例如 cgi-fcgi)能够访问此应用程序,或通过外部 FastCGI 应用程序定义
(FastCgiExternalServer) 对此应用程序进行访问。如果 -socket 和 -port 选项都没有指定,则此模块将生成一个 UNIX 域套接字文件名。-socket 和 -port 选项是互斥的。 Windows NT:应用程序应该用于与 Web 服务器通信的管道名。此模块创建了由 FastCgiIpcDir 指定的命名管道根的命名管道。该选项使得同一机器上的其它应用程序(如 cgi-fcgi)也能访问此应用程序,或者能够通过外部 FastCGI 应用程序定义 (FastCgiExternalServer) 对其进行访问。如果 -socket 和 -port 选项都没有指定,则此模块将为命名管道生成一个名称。-socket 和
-port 选项是互斥的。
FastCgiSuexec
服务器配置,缺省– FastCgiSuexec Off 语法– FastCgiSuexec On | Off | 文件名
FastCgiSuexec 伪指令用于启用对 suexec-wrapper 的支持。FastCgiSuexec 要求在
Apache 中启用(对于 CGI)。要使用 Apache 所使用的同一个 suexec-wrapper,将
FastCgiSuexec 设置成 On。要使用不同的 suexec-wrapper,指定 suexec-wrapper 的文件名。如果此文件名不是斜杠 (/) 开头的,则假设此文件名相对于 ServerRoot。
当启用 FastCgiSuexec 时,静态或外部 FastCGI 应用程序定义的位置十分重要。它们从定义它们的虚拟服务器中的 User 和 Group 伪指令继承了它们的用户和组。User 和 Group
伪指令应在 FastCGI 应用程序之前进行定义。此功能不会将 FastCGI 应用程序限制在定义它的虚拟服务器中,允许此应用程序对任何来自同一用户和组的虚拟服务器的请求进行服务。如果接收到的是对 FastCGI 应用程序的请求,而又不存在以此正确用户和组运行的现有匹配定义,则将用正确的用户和组启动此应用程序的动态实例。该操作将导致以不同用户/组运行同一应用程序的多个副本。如果这是问题,请从其它虚拟服务器中排除到此应用程序的导航,或者使用相同的用户和组来配置虚拟服务器。
1.4.4 mod_fcgid
FcgidWrapper
说明: CGI程序位置的设置
语法:FcgidWrapper
command [
suffix ] [ virtual ]
FcgidConnectTimeout
说明: Fastcgi的服务在等待设置的时间参数后超时(Fastcgi连接超时)
语法: FcgidConnectTimeout
seconds
默认:FcgidConnectTimeout 3
对应的老指令:IPCConnectTimeout
这是Fastcgi这个模块在windows中当它试图连接一个应用的时候设置的一个最大的周期时间,当等待时间超过了这个时间,将会出现超时。(此指令不适应在UNIX)
FcgidIdleTimeout
说明: 空闲的Fastcgi程序在超过设置的时间后将会被杀死
语法: FcgidIdleTimeout
seconds
默认:FcgidIdleTimeout 300
FcgidInitialEnv
说明: 将环境变量的值和一些可选值传给Fastcgi
语法: FcgidInitialEnv
name [
value ]
默认:none
1.5 mod_dir
其唯一的指令是DirectoryIndex,设定当客户端没有指定以文件形式结尾的目录名称请求该目录的索引时所要找寻的来源列表。
1.6 mod_env
将环境变量传递给CGI或SSI脚本。
PassEnv
此命令告诉模块从服务器的环境中传递一个或多个环境变量到CGI或SSI脚本。
SetEnv
设置环境变量,然后传递给CGI/SSI脚本。
UnsetEnv
从传递给CGI/SSI脚本的环境变量中删除一个或多个环境变量。
1.7 mod_imap
提供图形映射支持。
1.8 mod_include
实现服务端包含文档(SSI)处理
1.9 mod_log_config
支持记录日志。本模块提供了灵活的方法将客户请求记录到日志。日志可以用自定义的格式
直接写入文件,或者传送到一个外部程序继续处理。条件日志功能可以实现根据请求的特征来决定一个日志信息是否被包含在最终的日志记录里面。
定制日志文件格式
LogFormat和CustomLog指令的格式化参数是一个字符串。这个字符串会在每次请求发生的时候,被记录到日志中去。它可以包含将被原样写入日志的文本字符串以及C风格的控制字符"n"和"t"以实现换行与制表。文本中的引号和反斜杠应通过""来转义。
请求本身的情况将通过在格式字符串中放置各种"%"转义符的方法来记录,它们在写入日志文件时,根据下表的定义进行转换:
格式字符串
描述
%%
%a
%A
%B
%b
百分号(Apache2.0.44或更高的版本)
远端IP地址
本机IP地址
除HTTP头以外传送的字节数
以CLF格式显示的除HTTP头以外传送的字节数,也就是当没有字节传送时显示'-'而不是0。
%{Foobar}C
在请求中传送给服务端的cookieFoobar的内容。
服务器处理本请求所用时间,以微为单位。
%D
环境变量FOOBAR的值
%{FOOBAR}e
文件名
%f
远端主机
%h
请求使用的协议
%H
%{Foobar}i
发送到服务器的请求头Foobar:的内容。
%l
远端登录名(由identd而来,如果支持的话),除非IdentityCheck设为"On",否则将得到一个"-"。
请求的方法
%m
%{Foobar}n
来自另一个模块的注解Foobar的内容。
%{Foobar}o
应答头Foobar:的内容。
服务器服务于该请求的标准端口。
%p
为本请求提供服务的子进程的PID。
%P
%{format}P
%q
%r
%s
服务于该请求的PID或TID(线程ID),format的取值范围为:pid和tid(2.0.46及以后版本)以及hextid(需要APR1.2.0及以上版本)
查询字符串(若存在则由一个"?"引导,否则返回空串)
请求的第一行
状态。对于内部重定向的请求,这个状态指的是原始请求的状态,---%>s则指的是最后请求的状态。
时间,用普通日志时间格式(标准英语格式)
%t
%{format}t
时间,用strftime(3)指定的格式表示的时间。(默认情况下按本地化格式)
处理完请求所花时间,以秒为单位。
%T
%u
远程用户名(根据验证信息而来;如果返回status(%s)为401,可能是假的)
请求的URL路径,不包含查询字符串。
%U
%v
%V
对该请求提供服务的标准ServerName。
根据UseCanonicalName指令设定的服务器名称。
请求完成时的连接状态:
连接在应答完成前中断。
X=
应答传送完后继续保持连接。
+=
应答传送完后关闭连接。
-=
%X
(在1.3以后的版本中,这个指令是%c,但这样就和过去的SSL语法:%{var}c冲突了)
%I
%O
接收的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。
发送的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。
修饰符
可以紧跟在"%"后面加上一个逗号分隔的状态码列表来限制记录的条目。例如,"%400,501{User-agent}i"只记录状态码400和501发生时的User-agent头内容;不满足条件时用"-"代替。状态码前还可以加上"!"前缀表示否定,"%!200,304,302{Referer}i"记录所有不同于200,304,302的状态码发生时的Referer头内容。
"<"和">"修饰符可以用来指定对于已被内部重定向的请求是选择原始的请求还是选择最终的请求。默认情况下,%s, %U, %T, %D, %r使用原始请求,而所有其他格式串则选择最终请求。例如,%>s可以用于记录请求的最终状态,而%
一些说明
出于安全考虑,从2.0.46版本开始,%r, %i, %o 中的特殊字符,除了双引号(")和反斜线()分别用 " 和 进行转义、空白字符用C风格(n, t 等)进行转义以外,非打印字符和其它特殊字符使用 xhh 格式进行转义(hh是该字符的16进制编码)。在2.0.46以前的版本中,这些内容会被完整的按原样记录。这种做法将导致客户端可以在日志中插入控制字符,所以你在处理这些日志文件的时候要特别小心。
在2.0版本中(不同于1.3),%b 和 %B 格式字符串并不表示发送到客户端的字节数,而只是简单的表示HTTP应答字节数(在连接中断或使用SSL时与前者有所不同)。mod_logio提供的 %O 格式字符串将会记录发送的实际字节数。
示例
一些常见的格式串:
通用日志格式(CLF)
"%h %l %u %t "%r" %>s %b"
带虚拟主机的通用日志格式
"%v %h %l %u %t "%r" %>s %b"
NCSA扩展/组合日志格式
"%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-agent}i""
Referer日志格式
"%{Referer}i -> %U"
Agent(Browser)日志格式
"%{User-agent}i"
Log_config模块支持的伪指令
BufferedLogs
使得mod_log_config先在内存中缓冲一些日志内容,然后一次性写入磁盘,而不是立即写入。在一些系统上这样做可以提高磁盘性能。这个设置仅能够针对全局进行设置,不能单独针对虚拟主机进行设置。(这是一个试验性的指令,请在使用中多加小心。)
CustomLog
令用来对服务器的请求进行日志记录。可以指定日志的格式,也可以使用环境变量根据请求的特征来自由地组织日志。
第一个参数指定了日志记录的位置,可以使用以下两种方式来设定:
file相对于ServerRoot的日志文件名。
pipe管道符"|"后面紧跟着一个把日志输出当作标准输入的处理程序路径。
第二个参数指定了写入日志文件的内容。它既可以是由前面的LogFormat指令定义的nickname,也可以是直接按日志格式一节所描述的规则定义的format字符串。
第三个参数是可选的,它根据服务器上特定的环境变量是否被设置来决定是否对某一特定的请求进行日志记录。如果这个特定的环境变量被设置(或者在"env=!name"的情况下未被设置),那么这个请求将被记录。
LogFormat
定义访问日志的记录格式。
LogFormat指令可以使用两种定义格式中的一种。在第一种格式中,指令只带一个参数,以定义后续的TransferLog指令定义的日志格式。这个唯一的参数可以按上述自定义日志格式小节所描述的format来定义。另外它也可以通过下述的方法使用nickname来引用某个之前的LogFormat定义的日志格式。
第二种定义LogFormat指令的格式中,将一个直接的format和一个nickname联系起来。这样在后续的LogFormat或CustomLog指令中,就不用一再重复整个冗长的格式串。定义别名的LogFormat指令仅仅用来定义一个nickname ,而不做其它任何事情:也就是说,它只是定义了这个别名,它既没有实际应用这个别名,也不是把它设为默认的格式。因此,它不会影响后续的TransferLog指令。另外,LogFormat不能用一个别名来定义另一个别名。注意,别名不能包含百分号(%)。
1.10 mod_mime
提供从文件名决定文件了类型的功能。
AddEncoding
该指令以指定的编码类型把可能作为文件名结尾的扩展名加入文件扩展名列表。
AddLanguage
该指令以指定的语言把可能作为文件名结尾的扩展名加入文件扩展名列表。
AddType
该指令以指定的内容类型把可能作为文件名结尾的扩展名加入文件扩展名列表。
TypesConfig
指定MIME类型配置文件所在的位置。
1.11 mod_negotiation
提供对内容协商的支持。
1.12 mod_setenvif
使你可以创建定制环境变量。
BrowserMatch
此命令用来在规则表达式与模式匹配时设置黄和删除定制环境变量。
BrowserMatchNoCase
在BrowserMatch的功能之外还提供与大小写无关的匹配。
SetEnvIf
能够设置和删除定制的环境变量,可用于所有的请求标题字段。
SetEnvIfNoCase
在SetEnvIf功能之外还提供与大小写无关的规则表达式匹配。
1.13 mod_unique_id
该模块为每个请求提供在非常特殊的条件下保证是唯一的标识符。
1.14 mod_userdir
该模块的指令是UserDir,提供代表使用者的目录。
1.15 mod_cern_meta
提供对元信息的支持,元信息可以是HTTP头标。
MetaFiles
此命令允许或禁止元标题文件处理。
MetaDir
此命令用来指定存储元标题文件的目录的名称。
Metasuffix
此命令为元信息文件指定文件扩展名。
1.16 mod_cookies
唯一的指令是CookieLog,用来设定记录cookies用的文件名。
1.17 mod_digest
唯一的指令是AuthDigestFile,用来设定包含用户名和密码列表的文本文件的文件名。
1.18 mod_dld
该模块提供在启动时载入可执行文件及模块到服务器里去的功能。
LoadFile
该指令在服务器启动时链接其所指的目的文件或程序库。
LoadModule
该指令链接目的文件或程序库的文件名并且把所指定的模块加入到使用中的模块列表。
1.19 mod_example
唯一指令是Example,该指令设置示例模块的内容句柄显示的说明标志。
1.20 mod_expires
让你确定服务器在响应请求时如何处理Expires HTTP标题。
ExpiresActive
禁止或允许Expires标题生成。
ExpiresByType
指定MIME类型文档的Expires HTTP标题值。
ExpiresDefault
为指定的使用范围内的所有文档设置缺省的过期时间。
1.21 mod_headers
操作HTTP应答标题;提供单独的名为Header的命令。
1.22 mod_info
该模块对服务器的配置提供了全面的描述,其中包括所有安装的模块及其在配置文件中使用的命令;唯一的命令是AddModuleInfo。
1.23 mod_log_angent
允许在单独的日志中存储用户代理的信息。
AgentLog
默认值:AgentLog logs/agent_log
设定服务器记录及进入请求的文件名。
1.24 mod_log_referrer
提供了将请求中Referer头标写入日志的功能。
1.25 mod_nmap_static
提供经常访问的不改变的文件的列表。
MmapFile
该指令在Apache启动时,将一个或者多个文件映射进内存,Apache关闭时自动删除映射。
1.26 mod_proxy
提供对代理的支持。
ProxyRequests
默认值:ProxyRequests off
开启或关闭代理服务。
ProxyRemote
将自己的代理服务器匹配接口于另一个代理服务器。
ProxyPass
把一个代理服务器的文档树映射到另一个代理服务器的文档空间。
ProxyPassReverse
建立反向代理。
ProxyBlock
屏蔽向某一主机或域发出的请求。
NoProxy
在内部网络环境下,对ProxyRemote指令产生一些控制,可以指定一个域名、子网、IP地址或主机名,让ProxyRemote指令所指定的代理服务器不对它们作处理服务。
ProxyDomain
设定代理服务器的缺省域名。
ProxyReceiveBufferSize
给所有代理服务器发出的请求设定了网络缓冲大小。
CacheRoot
打开磁盘缓冲功能,必须指定一个目录,以便代理服务器能够写入被缓存的文件。
CacheSize
默认值:CacheSize 5
指定用作缓存的磁盘空间的大小。
CacheGcInterval
指定Apache每隔多长时间检查缓存目录,删除过期文件。
CacheMaxExpire
默认值:CacheMaxExpire 24
指定缓存文档的过期时间,以小时计。
CacheLastModifiedFactor
默认值:CacheLastModifiedFactor 1
指定了认为文档过期的时间系数。
CacheDirLenth
指定缓存文件的路径下子目录使用的字符数。
CacheDirLevels
默认值:CacheDirLevels 3
指定缓存数据文家的子目录的层数。
CacheDefaultExpire
默认值:CacheDefaultExpire 1
当不知道文件的最后修改时间,该指令提供了缺省的过期时间,以小时计。
CacheForceCompletion
默认值:CacheForceCompletion 90
该指令告诉代理服务器,即使请求已经取消,也要续传从远端服务器发出的文档。后面的数字表示百分比,也就是文档的90%已经缓存时就续传。
NoCache
该指令指定了由空格分隔的主机、域名、IP地址的列表,对于列表中的对象不执行缓存操作。
1.27 mod_rewrite
提供URL重写功能。
RewriteEngine
默认值:RewriteEngine off
提供了mod_rewrite模块内的URL重写引擎开关。
RewriteOptions
用指定的选项改变重写引擎的属性。
RewriteRule
定义重写规则。
RewriteCond
给RewriteRule指令定义的重写规则添加额外的条件。
RewriteMap
利用映射图方便了关键字到值的查找。
RewriteBase
仅当在每一路径配置文件中使用重写规则时才起作用。
RewriteLog
设定重写的日志。
RewriteLoglevel
默认值:RewriteLoglevel 0
指定重写文件中记录什么类容,0表示不记录任何内容。
RewriteLock
如果想用外部映射程序来生成重写映射图,就可以使用该指令指定一个用作同外部映射程序同步通信的锁定文件。
1.28 mod_so
提供在服务器启动时装载可执行代码和模块的功能。
LoadFile
在服务器启动时链接目标文件或库,还可以用来加载一些模块工作时必须的代码。
LoadModule
该指令链接目标文件或库,并将模块添加到活动模块列表中。
1.29 mod_speling
处理含有错误拼写或错误大小写的URL请求。
1.30 mod_status
允许管理员通过Web监视Apache。
1.31 mod_ssl
使用安全套接字层(SSL)和传输层安全(TLS)协议实现高强度加密传输
SSL模块相关环境变量
这个模块通过环境变量提供了许多额外的SSL信息到SSI和CGI的名字空间(以供脚本使用)。下表列出了所有这些变量。出于兼容性考虑,许多变量都有别名,具体可以参考兼容性一文。
数据类描述
型
HTTPS flag 是否正在使用HTTPS协议
SSL_PROTOCOL string SSL协议的版本(SSLv2, SSLv3, TLSv1)
SSL_SESSION_ID string 十六进制表示的SSL会话ID
SSL_CIPHER string 加密算法的名称
如果此算法是一个出口算法(export cipher)SSL_CIPHER_EXPORT string
那么其值为true
SSL_CIPHER_USEKEYSIZE number 加密算法的位数(实际使用的)
SSL_CIPHER_ALGKEYSIZE number 加密算法的位数(可能的)
SSL_COMPRESS_METHOD string 经过协商后实际使用的SSL压缩方法
SSL_VERSION_INTERFACE string mod_ssl的版本
SSL_VERSION_LIBRARY string OpenSSL的版本
SSL_CLIENT_M_VERSION string 客户端证书的版本
SSL_CLIENT_M_SERIAL string 客户端证书的序列号
SSL_CLIENT_S_DN string 客户端证书中特征名称(DN)域的值
SSL_CLIENT_S_DN_x509 string Component of client's Subject DN
SSL_CLIENT_I_DN string 客户端证书发行者的特征名称(DN)域的值
SSL_CLIENT_I_DN_x509 string Component of client's Issuer DN
SSL_CLIENT_V_START string 客户端证书有效期的开始时间
SSL_CLIENT_V_END string 客户端证书有效期的结束时间
SSL_CLIENT_V_REMAIN string 客户端证书还有多少天就将过期
SSL_CLIENT_A_SIG string 客户端证书的签名算法
SSL_CLIENT_A_KEY string 客户端证书的公钥算法
SSL_CLIENT_CERT string PEM编码的客户端证书
SSL_CLIENT_CERT_CHAIN_n string 在客户端证书链中PEM编码的证书
客户端认证的结果:NONE, SUCCESS,
SSL_CLIENT_VERIFY string
GENEROUS, FAILED:reason
SSL_SERVER_M_VERSION string 服务器证书的版本
SSL_SERVER_M_SERIAL string 服务器证书的序列号
变量名
SSL_SERVER_S_DN
SSL_SERVER_S_DN_x509
SSL_SERVER_I_DN
SSL_SERVER_I_DN_x509
SSL_SERVER_V_START
SSL_SERVER_V_END
SSL_SERVER_A_SIG
SSL_SERVER_A_KEY
SSL_SERVER_CERT
string 服务器证书中特征名称(DN)域的值
string Component of server's Subject DN
string 服务器证书发行者的特征名称(DN)域的值
string Component of server's Issuer DN
string 服务器证书有效期的开始时间
string 服务器证书有效期的结束时间
string 服务器证书的签名算法
string 服务器证书的公钥算法
string PEM编码的服务器证书
x509要求X.509证书的特征名称(DN)域至少需要包含下列字段之一:C,ST,L,O,OU,CN,T,I,G,S,D,UID,Email。Apache2.1以后的版本x509还可以包含一个"_n"的数字后缀。如果被查询的DN具有多个同名属性,那么这个数字后缀就可以用来选择究竟是哪个属性。例如,服务器证书的DN域含有两个同名的"OU"字段,那么就可以用SSL_SERVER_S_DN_OU_0和SSL_SERVER_S_DN_OU_1来区分它们。
SSL_CLIENT_V_REMAIN仅在2.1和更高版本中可见。
SSL模块伪指令
Listen
https监听端口,默认使用443
SSLEngine
用于开启或关闭SSL/TLS协议引擎。一般用于
SSLCACertificateFile
用于客户端认证。这个指令指定了一个多合一的CA证书,只有持有这些CA所签发证书的客户端才允许访问。这个所谓"多合一"证书文件其实就是将多个PEM格式的证书按照优先级顺序放置在同一个文件中而已。这个指令也可以由SSLCACertificatePath指令代替,或者两个一起使用。
SSLCACertificatePath
该指令用于客户端认证。这个指令指定了一个包含CA证书的目录,只有持有这些CA所签发证书的客户端才允许访问。
该目录中的证书必须是PEM格式,并且它们都通过散列后的文件名访问。所以你不能只是把证书放到这个目录中就完事了:你还需要创建一个名为hash-value.N的符号连接,并保证这个目录下的所有符号链接都准确无误。请使用mod_ssl附带的Makefile完成这项工作。、
SSLCertificateFile
该指令用于指定服务器持有的X.509证书(PEM编码),其中还可以包含对应的RSA或DSA私钥。如果其中包含的私钥已经使用密语加密,那么在 Apache启动的时候将会提示输入密语。如果服务器同时使用了RSA和DSA两种证书,那么该指令可以使用两次来分别指定两种证书的位置。
SSLCertificateKeyFile
该指令指定了服务器私钥文件(PEM编码)的位置。如果SSLCertificateFile指定的服务器证书文件中不包含相应的私钥,那么就必须使用该指令,否则就不需要使用。我们反对在服务器证书中包含私钥,正确的做法应该是将证书和私钥分开在不同的文件中。如果私钥文件已经使用密语加密,那么在Apache启动的时候将会提示输入密语。如果服务器同时使用了RSA和DSA两种证书,那么该指令可以使用两次来分别指定两种私钥的位置。
1.32 mod_suexec
使用与调用web服务器的用户不同的用户身份来运行CGI和SSI程序
SuexecUserGroup
指定CGI程序运行时所使用的用户和组。非CGI程序的请求仍然使用User指令所指定的用户身份处理。
1.33 mod_usertrack
该模块用来产生记录用户在一个站点使用cookies活动的“clickstream”日志。
CookieExpires
该指令设置mod_usertrack模块生成的cookie的生存时间,以秒计。
CookieName
默认值:CookieName Apache
让用户更改用于跟踪目的的cookie的名称。
CookieTracking
对所有的请求,Apache均发送一个用户跟踪的cookie,该指令可用来在服务器或者目录的基础上禁止该行为。
1.34 mod_vhost_alias
支持动态配置批量虚拟主机。
VirtualDocumentRoot
设置基于服务器名的Apache文档。
VirtualDocumentRootIP
除了用IP地址代替主机名以外,其它功能和VirtualDocumentRoot类似。
VirtaulScriptAlias
该指令告诉Apache在什么地方找到CGI脚本。
VirtaulScriptAliasIP
除了用IP地址代替主机名以外,其它功能和VirtaulScriptAlias类似。ServerRoot “/etc/httpd”
用于设置服务器的根目录,默认位置为/etc/httpd,服务器根目录是Apache配置文件、日志文件、模块文件等相关文件的基础目录
版权声明:本文标题:apache配置及模块指令速查 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1703470674h452788.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论