相思雨
The Apple of My Eye.

Nginx:


log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $request_time';


日志格式说明:
$remote_addr 远程请求使用的IP地址
$remote_user 远端登录名
$time_local 时间,用普通日志时间格式(标准英语格式)
$request 请求的第一行
$status 状态。
$body_bytes_sent 请求返回的字节数,包括请求头的数据
$http_referer 请求头Referer的内容
$http_user_agent 请求头User-Agent的内容
$request_time 处理完请求所花时间,以秒为单位

 

Apache:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T " combined
CustomLog log/access_log combined


日志格式说明:

%a 远端IP地址

%A 本机IP地址

%B 除HTTP头以外传送的字节数

%b 以CLF格式显示的除HTTP头以外传送的字节数,也就是当没有字节传送时显示’-'而不是0。

%{Foobar}C 在请求中传送给服务端的cookieFoobar的内容。

%D 服务器处理本请求所用时间,以微秒为单位。(%D logs the time between Apache starting to process a request (i.e. I believe it omits the handshake) and offloading it completely onto the local TCP stack. You cannot measure just the time it takes to process the request and compose the response.)

%{FOOBAR}e 环境变量FOOBAR的值

%f 文件名

%h 远端主机

%H 请求使用的协议

%{Foobar}i 发送到服务器的请求头Foobar:的内容。

%l 远端登录名(由identd而来,如果支持的话),除非IdentityCheck设为"On",否则将得到一个"-"。

%m 请求的方法

%{Foobar}n 来自另一个模块的注解Foobar的内容。

%{Foobar}o 应答头Foobar:的内容。

%p 服务器服务于该请求的标准端口。

%P 为本请求提供服务的子进程的PID。

%{format}P 服务于该请求的PID或TID(线程ID),format的取值范围为:pid和tid(2.0.46及以后版本)以及hextid(需要APR1.2.0及以上版本)

%q 查询字符串(若存在则由一个"?"引导,否则返回空串)

%r 请求的第一行

%s 状态。对于内部重定向的请求,这个状态指的是原始请求的状态,—%>s则指的是最后请求的状态。

%t 时间,用普通日志时间格式(标准英语格式)

%{format}t 时间,用strftime(3)指定的格式表示的时间。(默认情况下按本地化格式)

%T 处理完请求所花时间,以秒为单位。

%u 远程用户名(根据验证信息而来;如果返回status(%s)为401,可能是假的)

%U 请求的URL路径,不包含查询字符串。

%v 对该请求提供服务的标准ServerName。

%V 根据UseCanonicalName指令设定的服务器名称。

%X 请求完成时的连接状态:X= 连接在应答完成前中断。

+= 应答传送完后继续保持连接。

-= 应答传送完后关闭连接。

(在1.3以后的版本中,这个指令是%c,但这样就和过去的SSL语法:%{var}c冲突了)

%I 接收的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。

%O 发送的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。

修饰符

 

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %T/%D" combined

样例:

[31/Jan/2008:14:19:07 +0000] "GET / HTTP/1.1" 200 7918 "" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.11) Gecko/20061201 Firefox/2.0.0.11 (Ubuntu-feisty)" 0/95491

 

附:

Apache处理长短连接:

case:http://blogread.cn/it/article.php?id=2042 

结论:在理想的环境中,如果打开长连接,可以处理6k/s 的响应,如果关掉长连接,只能处理4.2k/s 的响应。我想实际的环境影响一定小很多。但一定程度的说明长连接还是相当有用的。

KeepAlive是决定开启KeepAlive支持;KeepAliveTimeout决定一 个KeepAlive的连接能保持多少时间,Timeout就尽快shutdown链接,若还有数据必须再建立新的连接 了;MaxKeepAliveRequests于KeepAliveTimeout相似,意思是服务多少个请求就shutdown连接。看个例子:

KeepAlive On
KeepAliveTimeout 5

意思是说,打开KeepAlive,每个连接只保持5秒就中断。

对于KeepAlive的配置需要慎重,错误的参数可能导致严重的性能问题。一个高负载的Server,如果建立的很多长连接将无法继续服 务新的连接。因此需要根据server的性质调整KeepAliveTimeout或是MaxKeepAliveRequests的值。

posted on 2012-07-18 18:41  相思雨  阅读(1671)  评论(0编辑  收藏  举报