在 Debian 上基于 Apache2 的网站分析实操指南
一 基础准备与日志定位
apachectl configtest | grep -E "CustomLog|ErrorLog"二 命令行快速分析
sudo tail -f /var/log/apache2/access.logsudo tail -f /var/log/apache2/error.logawk '{print $1}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -20grep -E '"( 404|500|403) "' /var/log/apache2/access.log | cut -d'"' -f3 | sort | uniq -c | sort -nrgrep ' 404 ' /var/log/apache2/access.log | awk '{print $7}' | sort | uniq -c | sort -nrawk '{print $7}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -20awk '{print $4}' /var/log/apache2/access.log | cut -c 14-19 | sort | uniq -c | sort -nrawk '$NF > 1000000 {print $NF/1000000, $7}' /var/log/apache2/access.log | sort -nr | headgrep "$(date +%d/%b/%Y)" /var/log/apache2/access.log | wc -lawk '{sum+=$10} END {print sum}' /var/log/apache2/access.loggrep -E "Permission denied|File does not exist" /var/log/apache2/error.log | headgrep -i "Syntax error\|No such file" /var/log/apache2/error.log三 启用状态页与实时监控
sudo a2enmod status<Location "/server-status">
SetHandler server-status
Require local
# 如需内网访问可改为:Require ip 192.168.1.0/24
ExtendedStatus On
</Location>
sudo systemctl restart apache2netstat -ant | grep :80、top/htopab -n 1000 -c 50 http://your_site/(评估并发与性能瓶颈)。四 可视化与集中化分析工具
sudo apt-get install goaccessgoaccess /var/log/apache2/access.loggoaccess /var/log/apache2/access.log -o /var/www/html/report.html --log-format=COMBINED五 配置优化与最佳实践