温馨提示×

nginx日志如何开启

小樊
40
2026-07-07 14:56:17
栏目: 编程语言

开启 Nginx 日志通常包括 访问日志(access log)错误日志(error log),配置方式如下:


一、确认 Nginx 是否已开启日志

Nginx 默认是开启日志的,但如果你发现没有日志,可能是被关闭或路径配置不正确。


二、开启 / 配置访问日志(access_log)

1️⃣ 在 nginx.conf 或站点配置中设置

http {
    # 定义日志格式
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

    # 开启访问日志
    access_log /var/log/nginx/access.log main;
}

✅ 说明:

  • main:日志格式名
  • /var/log/nginx/access.log:日志路径

2️⃣ 针对某个站点单独开启

server {
    listen 80;
    server_name example.com;

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

三、开启 / 配置错误日志(error_log)

error_log /var/log/nginx/error.log warn;

日志级别(从低到高)

级别 说明
debug 调试信息(生产环境不建议)
info 一般信息
notice 注意
warn 警告
error 错误
crit 严重
alert 告警
emerg 紧急

✅ 推荐生产环境:

error_log /var/log/nginx/error.log warn;

四、关闭日志(不推荐)

access_log off;
error_log /dev/null;

⚠️ 不建议在生产环境关闭,不利于排查问题。


五、检查 & 重载 Nginx

1️⃣ 检查配置是否正确

nginx -t

2️⃣ 重载配置

nginx -s reload
# 或
systemctl reload nginx

六、查看日志

# 访问日志
tail -f /var/log/nginx/access.log

# 错误日志
tail -f /var/log/nginx/error.log

七、常见问题

❓ 日志文件不生成?

  • 目录不存在:/var/log/nginx
  • 没有写权限
  • 配置未 reload
  • access_log off; 关闭

❓ Docker 中 Nginx 日志?

access_log /dev/stdout;
error_log /dev/stderr;

如果你愿意,可以把你的 nginx.conf 或站点配置贴出来,我可以帮你直接检查为什么日志没生效。

0