Forest树洞

服务器性能压测与链路排查实战总结

2025/12/17
2
0

一、 实验环境

  • 服务器 A(受测端) :Debian 系统,基于 1Panel 部署 OpenResty,运行个人博客(域名:ivyforest.cn)。
  • 服务器 B(压力源) :同地域、同子网阿里云服务器。
  • 网络环境:公网带宽 1Mbps,内网带宽不限。

二、 核心实验数据对比

使用 ab (ApacheBench) 工具进行并发测试,对比不同协议与网络环境下的性能表现。

测试场景请求方式并发数 (Concurrency)请求总数 (Total)吞吐率 (RPS)平均连接延迟 (Connect)
公网测试HTTPS1005000~82 #/sec492ms
内网测试 1HTTPS1005000~489 #/sec1ms
内网测试 2HTTP1005000~20769 #/sec2ms

结论分析:

  1. 带宽限制:公网测试受限于服务器 A 的 1Mbps 带宽,RPS 达到 82 左右即触及物理瓶颈。
  2. 协议开销:在内网环境下,HTTP 性能约为 HTTPS 的 42 倍。HTTPS 的性能损耗主要源于 SSL/TLS 非对称加密握手阶段对 CPU 资源的消耗。
  3. 内网优势:内网连接延迟(Connect Time)基本维持在 1ms 左右,远低于公网,验证了微服务架构中内网通信的必要性。

三、 日志排查与定位路径

在实验过程中,针对“压测记录无法在默认日志中找到”的问题,进行了全链路追踪。

1. 进程识别

通过 ps -ef | grep openresty 发现主进程带有 -g daemon off; 参数,确认 OpenResty 以容器化形式运行,日志可能存在重定向。

2. 容器卷挂载

查看 /opt/1panel/apps/openresty/openresty/docker-compose.yml,分析 volumes 挂载关系:

  • 日志全局映射:./log:/var/log/nginx
  • 站点数据映射:${WEBSITE_DIR}:/www

3. 日志最终定位

1Panel 对 OpenResty 的配置采用了站点隔离模式。经排查,针对指定域名(ivyforest.cn)的访问日志并未存储在 OpenResty 的主日志文件夹中,而是存储于:

/opt/1panel/www/sites/ivyforest.cn/log/access.log

四、 访问统计与安全审计

使用 Linux 文本处理工具对站点日志进行审计,提取访问频次最高的前 10 个 IP:

awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -n 10

数据反馈:

  • 172.19.72.40:记录为 10000 次,确认由服务器 B 发起的两次内网测试产生。
  • 47.108.209.4:服务器 B 的公网 IP,确认由早期公网域名压测产生。
  • 异常流量:发现多条来自海外(如俄罗斯、波兰)的 IP 记录,多为针对 logon.htmGponForm/diag_Form 等路径的自动化扫描攻击。

五、 技术心得

  1. 性能优化:在内网环境下,应尽量使用 HTTP 协议进行服务间调用以提升吞吐量。
  2. 安全维度:公网服务器暴露后,即便没有业务流量,也会持续受到全球范围内的自动化漏扫攻击。
  3. 排障方法:排查 Web 问题应遵循“网络层 -> 防火墙/WAF 层 -> 容器挂载层 -> 站点配置层”的顺序进行。