• Nginx和Apache日志格式详解


    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的值。

  • 相关阅读:
    【转】SQL server 随机数函数
    [HTML] 焦点的丢失和回复
    [PHP] PHP & HTML & JavaScript & MySQL 代码如何互相传值
    [TWAIN] 3句话总结TWAIN在Windows Server 2008 R2 SP1的使用
    PHP & HTML & JavaScript & MySQL中GBK中文乱码解决
    PDFCreator 安装在Win 2008 R2 Server.
    cer格式证书变换成crt格式
    如何在WI 5.4上激活Receiver下载和更新
    啊喂
    [Receiver 3.3][首发] Receiver 的命令安装
  • 原文地址:https://www.cnblogs.com/huzhiwei/p/2597968.html
Copyright © 2020-2023  润新知