在 Debian 系统上配置 Nginx 日志(访问日志和错误日志)主要涉及修改 Nginx 的配置文件。下面按“常见场景 + 示例”来说明。
Nginx 主要有两类日志:
访问日志(access log)
记录客户端请求信息(IP、时间、请求地址、状态码等)
错误日志(error log)
记录 Nginx 运行时的错误信息(配置错误、后端异常等)
Debian 下默认路径为:
/var/log/nginx/
├── access.log
└── error.log
Debian 的 Nginx 配置通常在:
/etc/nginx/nginx.conf
/etc/nginx/sites-enabled/default
推荐使用 sites-enabled 配置虚拟主机。
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 /var/www/html;
index index.html;
}
}
在 http {} 块中定义(一般在 nginx.conf):
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;
}
常用变量说明:
| 变量 | 含义 |
|---|---|
$remote_addr |
客户端 IP |
$time_local |
本地时间 |
$request |
请求行 |
$status |
HTTP 状态码 |
$http_user_agent |
浏览器信息 |
error_log /var/log/nginx/error.log warn;
日志级别(从低到高):
debug < info < notice < warn < error < crit < alert < emerg
✅ 生产环境建议:
error_log /var/log/nginx/error.log error;
server {
server_name www.a.com;
access_log /var/log/nginx/a_access.log;
error_log /var/log/nginx/a_error.log;
}
server {
server_name www.b.com;
access_log /var/log/nginx/b_access.log;
error_log /var/log/nginx/b_error.log;
}
access_log off;
error_log /dev/null;
⚠️ 仅用于调试或特殊场景。
Debian 默认使用 logrotate 管理 Nginx 日志。
配置文件位置:
/etc/logrotate.d/nginx
示例内容:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
systemctl reload nginx > /dev/null 2>&1
endscript
}
sudo nginx -t
sudo systemctl reload nginx
ls -ld /var/log/nginx
logrotate如果你愿意,我可以帮你:
直接把你的 nginx.conf 或站点配置贴出来即可。