首页/技术开发/内容

APACHE(6)

技术开发2024-06-12 阅读()
' 跟随著一个指令
从标准输入接收参考记录资讯的程序。注意如果虚拟主机从主要
服务器继承 RefererLog 设定的话不会起动新的程序。


安全: 如果在此使用程序,它将会以起动 httpd 的使用者身分执行。
如果服务器由 root 起动那麽此程序就是由 root 执行;所以要确定次
程序的安全性。


这个指令是为了与 NCSA 1.4 相容而提供的。


5.5 mod_log_config 模组

这个模组包含在 mod_log_config.c 这个文件里,而且依预设不会编译
进去。它提供记录对服务器之请求的功能,使用由使用者指定的格式。


5.5.1 摘要

这是个实验性质的模组,它实作 TransferLog 这个指令(与一般记录
模组相同),以及另一个指令,LogFormat 。有错误也不会让我惊讶。

LogFormat 的参数是个字串,可以包含要复制到记录档里的文字,以及
如下所列的 `%' 指令:

%...h: 远端主机
%...l: 远端的签入名称(从 identd 得知,如果对方
有支援)
%...u: 远端使用者(从 auth 得知,如果回传的状态
(%S)为 401 的话那这有假造的可能)
%...t: 时间,一般的时间记录格式
%...r: 请求的第一行
%...s: 状态。用於遇到内部重导的请求,这是
{f original}请求的状态 --- %...>s 是
最後的。

%...b: 送出的位元组
%...{foobar}i: Foobar 的内容: 要送往客户端之请求里面的
标头行。
%...{foobar}o: Foobar 的内容: 在回覆(reply) 里的标头行

`...' 这个部份可以完全不要(e.g. "%h %u %r %s %b") ,或者它可以
表示要包含某项目的条件(如果不符合该条件那麽它会被 `-' 取代)
。要注意的是,在字串上的 %r, %...i 以及 %...o 没有脱离的实作
(no escaping performed); 有些记性很好的人可能记得我认为这不是
个好主意,直到现在,我仍然对它很感冒,但是要看出如何以 `%...i'
‘做正确的事’是很困难的,除非我们 URL-escape 每一件事并以 CLF
打断它们。

条件的形式是一份 HTTP 状态码的列表,可能有也可能没有 `!' 前导
。因此 `%400,501{User-agent}i' 记录 User-agent: 只对错误状态
400 及 501(错误请求,没有实作)作用;`%!200,304,302{Referer}i'
记录 Referer: 对所有没回传正常状态的请求作用。

预设的 LogFormat 重现 CFL; 如下。

配合虚拟主机使用的想法如下: 虚拟主机可以拥有它自己的 LogFormat
,或是它自己的 TransferLog。如果它没有自己的 LogFormat,它就从
主要服务器继承。如果它没有自己的 TransferLog,他就写到相同的描
述子(descriptor)去(意指相同的 `(北联网教程,专业提供视频软件下载)

第1页  第2页  第3页 

……

相关阅读