linux

nginx日志格式怎么选

小樊
42
2025-08-24 13:23:54
栏目: 编程语言

选择Nginx日志格式需结合业务需求,以下为常见方案及要点:

  1. 默认格式(combined)
    记录IP、时间、请求、状态码、响应大小等基础信息,适用于常规访问分析,如log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';

  2. 精简格式(减少冗余)
    仅保留关键字段(如IP、请求、状态码),节省存储空间,例如log_format simple 'remote_addr - request status';

  3. 详细分析格式
    添加性能指标(请求时间、上游响应时间)、协议细节(SSL/TLS版本)等,用于深度监控,如log_format detailed '$remote_addr - $request $status $request_time $upstream_response_time $ssl_protocol';

  4. 按场景拆分格式

    • 静态资源:简化格式,仅记录IP、请求、状态码,如log_format static 'remote_addr - [time_local] "$request" $status';
    • API/管理端:记录更多上下文(如请求头、用户标识),便于追踪,如log_format api '$remote_addr - $http_authorization $request $status $upstream_addr';
  5. 特殊需求格式

    • JSON格式:便于ELK等工具解析,如log_format main_json escape=json '{ "timestamp": "$time_iso8601", "remote_addr": "$remote_addr", "request": "$request" }';
    • 动态条件:通过map指令过滤特定请求(如跳过健康检查),如map $request_uri $loggable { default 1; ~*/healthcheck 0; },再配合access_log if=$loggable;

配置建议

参考来源:

0
看了该问题的人还看了