温馨提示×

怎样开启nginx访问日志

小樊
43
2026-09-04 11:01:30
栏目: 编程语言

Nginx 中开启访问日志(access log)通常只需要配置 access_log 指令即可。下面分几种常见情况说明。


一、最基础的开启方式(默认已开启)

Nginx 默认就有访问日志,一般在:

http {
    access_log  /var/log/nginx/access.log;
}

如果你没改过配置,默认就是开启的


二、为某个站点(server)开启访问日志

编辑站点配置,例如:

server {
    listen 80;
    server_name example.com;

    access_log /var/log/nginx/example.access.log;
    error_log  /var/log/nginx/example.error.log;

    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}

三、自定义日志格式(推荐)

http 块中定义日志格式:

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

    access_log /var/log/nginx/access.log main;
}

然后在 serverlocation 中使用:

access_log /var/log/nginx/access.log main;

四、关闭访问日志(可选)

如果某些请求不想记录(如健康检查):

location = /health {
    access_log off;
}

五、修改配置后必须执行

nginx -t        # 检查配置是否正确
nginx -s reload # 重新加载配置

六、查看访问日志

tail -f /var/log/nginx/access.log

七、常见问题

1. 日志没生成?

  • 检查路径是否存在、Nginx 是否有权限写
  • 确认 access_log 没有被 off
  • 确认已 reload

2. Docker 中的 Nginx?

日志通常在:

docker logs nginx

或挂载了 /var/log/nginx


如果你愿意,可以告诉我:

  • 用的是 Linux / Docker / Windows
  • 默认配置还是自定义配置
  • 想记录哪些信息(IP、UA、响应时间等)

我可以给你一份可直接用的完整配置

0