不能直接用nginx监控apache访问量,需分别采集日志并统一格式与时区后,按时间窗口统计对比;apache日志路径为/var/log/apache2/access.log或/var/log/httpd/access_log,nginx为/var/log/nginx/access.log。

不能直接用 Nginx 监控 Apache 的访问量,两者是独立运行的 Web 服务器,日志、进程、指标体系互不相通。要对比访问量,必须分别采集各自的数据,再做横向比对。
确认各自访问日志路径与格式
Apache 默认日志通常在 /var/log/apache2/access.log(Debian/Ubuntu)或 /var/log/httpd/access_log(RHEL/CentOS);Nginx 默认为 /var/log/nginx/access.log。确保两者的日志都已启用且格式统一(例如都包含时间、IP、状态码、请求路径),否则统计口径不一致会导致对比失真。
- 检查 Apache 日志格式:查看
LogFormat指令,推荐使用 combined 格式 - 检查 Nginx 日志格式:确认
log_format是否匹配,如:log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'; - 若用于自动化分析,建议将两者日志时间戳统一为 ISO8601 格式,并开启 UTC 或固定时区,避免跨时区偏差
按时间窗口统计请求数(基础对比)
最简方式是用 awk + grep 统计单位时间内的总请求数,例如过去一小时:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- Apache(过去 60 分钟):
awk -v d1="$(date -d '1 hour ago' '+%d/%b/%Y:%H:%M:%S')" -v d2="$(date '+%d/%b/%Y:%H:%M:%S')" '$4 > d1 && $4 - Nginx(同理):
awk -v d1="$(date -d '1 hour ago' '+%d/%b/%Y:%H:%M:%S')" -v d2="$(date '+%d/%b/%Y:%H:%M:%S')" '$4 > d1 && $4 - 注意:Nginx 和 Apache 默认日志时间格式相同(
[DD/MMM/YYYY:HH:MM:SS]),但需确认是否启用了timezone配置,否则可能因系统时区差异导致漏计
引入统一监控工具做可视化对比
手动统计适合临时验证,长期对比建议接入同一套可观测平台:
-
Filebeat + Elasticsearch + Kibana:用 Filebeat 同时采集两个日志源,打上
server_type: nginx或server_type: apache标签,在 Kibana 中用折线图并列展示 QPS 趋势 -
Telegraf + Prometheus + Grafana:通过 Telegraf 的
apache和nginx输入插件,分别抓取apache_httpd_status和nginx_plus_api(或开源版的 stub_status)指标,聚合为http_requests_total{server="nginx"}和http_requests_total{server="apache"},在 Grafana 中叠加显示 - 关键点:必须确保两个服务的采样周期、时间对齐、标签维度(如 status code、method)保持一致,否则图表无法真实反映相对负载
注意真实业务场景中的干扰项
单纯比“请求数”容易误导,需结合上下文判断:
- Apache 可能被用作后端应用服务器(如 mod_php 直接执行 PHP),单次请求耗时长、CPU 占用高;Nginx 多作为前端静态服务或反向代理,请求快但可能转发多次——此时“请求数”高不代表压力大
- 若 Nginx 前置代理 Apache(常见架构),则 Nginx access.log 记录的是客户端请求,Apache access.log 记录的是 Nginx 的转发请求,二者数值接近但时间戳和 IP 不同(后者 remote_addr 是 Nginx 内网 IP)
- 务必排除健康检查、爬虫、CDN 预热等非用户流量:可在日志中过滤掉
User-Agent包含HealthChecker、Googlebot、monitor的条目再统计










