在 nginx 中关闭日志,通常指关闭 access_log(访问日志) 和 error_log(错误日志)。下面按常见场景说明。
access_log off;
示例:
server {
listen 80;
server_name example.com;
access_log off;
location / {
root /usr/share/nginx/html;
}
}
✅ 适用于不想记录任何访问日志的情况。
location / {
access_log off;
}
⚠️ 不建议完全关闭,否则排错会非常困难。
error_log /dev/null;
或:
error_log off;
⚠️
error_log off;在某些版本中只是关闭输出,但仍可能写日志,最稳妥的是/dev/null
error_log /var/log/nginx/error.log crit;
日志级别(从低到高):
debug < info < notice < warn < error < crit < alert < emerg
| 作用域 | 影响范围 |
|---|---|
| http | 全局 |
| server | 虚拟主机 |
| location | 某个路径 |
示例(全局关闭 access_log):
http {
access_log off;
}
nginx -t
systemctl reload nginx
# 或
nginx -s reload
❌ 以为 access_log off; 是关闭 error_log
✅ 它们是不同的指令
❌ 生产环境完全关闭 error_log
✅ 建议至少保留 error 或 crit
access_log off;
error_log /dev/null crit;
如果你有 Docker / Kubernetes / 某个特定版本 nginx,可以告诉我,我可以给你更精确的配置。