Debian 上 Apache 日志过大,通常不是“Bug”,而是配置和使用方式导致的。常见原因和对应解释如下:
Debian 默认 有 logrotate,但如果:
/var/log/apache2/custom.log)就可能导致 日志从不切割。
结果:
access.log 20GB
error.log 5GB
✅ 检查:
ls -lh /var/log/apache2/
cat /etc/logrotate.d/apache2
默认 Apache 会记录:
示例:
GET /static/a.png HTTP/1.1 200
GET /favicon.ico HTTP/1.1 404
GET /wp-login.php HTTP/1.1 200
一天几百万行很正常。
LogLevel 设置过低(如 debug):
LogLevel debug
会记录:
✅ 推荐:
LogLevel warn
常见于公网服务器:
/wp-admin这类请求 全部进 access.log
你可能同时有:
CustomLog ${APACHE_LOG_DIR}/access.log combined
CustomLog ${APACHE_LOG_DIR}/other.log combined
或多个 vhost 都写同一个文件。
在容器里:
宿主机看不到“轮转”。
# 看日志大小
du -sh /var/log/apache2/*
# 看每分钟请求数
tail -n 10000 access.log | awk '{print $4}' | sort | uniq -c
logrotate -d /etc/logrotate.d/apache2
忽略静态文件:
SetEnvIf Request_URI "\.(css|js|png|jpg|gif|ico)$" static
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!static
LogLevel warn
HostnameLookups Off
你可以贴一下:
apache2.conf 或 vhost 日志相关配置du -sh /var/log/apache2/* 输出我可以直接帮你定位是哪一类问题并给出最小改动方案。