Debian上Nginx日志管理实用方法
一 基础配置与实时查看
tail -f /var/log/nginx/access.logtail -f /var/log/nginx/error.loglog_format custom '$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 custom;
error_log /var/log/nginx/error.log warn;
修改后检查并重载:sudo nginx -t && sudo systemctl reload nginx。二 日志轮转与清理
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 $(cat /var/run/nginx.pid)
fi
endscript
}
/var/log/nginx/access.log {
size 10M
missingok
rotate 5
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
/usr/sbin/nginx -s reopen
endscript
}
sudo logrotate -d /etc/logrotate.d/nginxsudo logrotate -f /etc/logrotate.d/nginxfind /var/log/nginx/ -type f -name "*.log" -mtime +7 -delete> /var/log/nginx/access.log(不建议在高并发下直接清空,优先用轮转)三 监控分析与可视化
journalctl -u nginx -f(实时)、journalctl -u nginx --since "2025-11-01"(按时间)tail -f /var/log/nginx/access.log | grep ' 500 'sudo apt install multitail && multitail -i /var/log/nginx/access.log -i /var/log/nginx/error.logngxtop(需安装 Python 与 pip):pip3 install ngxtop && ngxtop -l /var/log/nginx/access.log四 生产实践与安全建议
nginx -s reopen。/var/log/nginx/*.log /var/log/nginx/*/*.log)。nginx -t 校验,再 systemctl reload nginx 或触发 logrotate,确保平滑生效。