在 Nginx 的 http 块中配置 access_log /var/log/nginx/access.log combined; 可统一启用默认访问日志,所有 server 块自动继承;需确保路径存在且 Nginx 用户有写权限,避免子配置中使用 access_log off 或缺失格式名导致覆盖或报错,最后通过 nginx -t、nginx -s reload 和 tail 验证生效。

在 Nginx 的全局主配置(即 http 块)中统一设定默认的 access_log,是最简洁、可维护性最强的做法。它让所有 server 块自动继承该日志配置,避免重复书写,也便于集中管理。
在 http 块中直接写 access_log 指令
打开 nginx.conf,找到 http { ... } 区域,在其中添加一行:
access_log /var/log/nginx/access.log combined;
这行就完成了全局默认访问日志的启用。Nginx 自带 combined 格式,内容与 Apache 兼容,包含客户端 IP、时间、请求行、状态码、响应体大小、Referer 和 User-Agent,无需额外定义 log_format。
将 WCAG 2 AA 无障碍标准应用于设计系统、UI 组件和网页——通过可运行的验证器进行对比度计算,采用设计 token 模式使颜色天生可访问,设定排版和焦点状态规则,并提供语义检查清单。适用于构建或审查 UI。
- 路径必须真实存在,且 Nginx 工作用户(如
www-data或nginx)对该路径有写权限 - 若使用自定义路径(如
/data/logs/nginx/access.log),需提前创建目录并赋权:sudo mkdir -p /data/logs/nginx && sudo chown nginx:nginx /data/logs/nginx - 不指定格式时,Nginx 默认使用
combined;显式写出更清晰、可读性更强
确保没有被子配置意外关闭或覆盖
全局设置后,个别 server 或 location 块仍可能覆盖它。要注意以下情况:
- 不要在某个
server块里写access_log off;,这会完全禁用该站点日志 - 不要在
server中只写access_log /path/to/file;(缺格式名),这会因格式未定义而报错或回退到默认行为,造成不一致 - 如需为某站点单独设日志,应明确指定格式,例如:
access_log /var/log/nginx/app1.access.log combined;
验证是否生效
完成配置后执行两步:
- 语法检查:
nginx -t,确认输出syntax is ok - 重载配置:
nginx -s reload - 发一次请求:
curl -I http://localhost/ - 立即查看日志:
tail -n1 /var/log/nginx/access.log,应看到类似:127.0.0.1 - - [12/Oct/2026:19:03:22 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/8.9.1"
进阶:配合 logrotate 实现自动轮转
生产环境建议搭配系统 logrotate 管理日志文件。例如为 /var/log/nginx/*.log 添加轮转规则,并在 postrotate 中发送 USR1 信号让 Nginx 重新打开日志文件,无需重启服务。

















