You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用mod_remoteip后高并发压测出现SSL Handshake failed(5)求助

问题分析与解决方案

针对启用Proxy Protocol后高并发场景下出现的SSL handshake failed(5)错误,结合你的配置和场景,给出以下排查方向和解决方法:

1. 调整Apache并发连接限制

高并发下Apache的连接处理能力不足是常见诱因,检查并调整MPM模块参数:

  • 编辑Apache主配置文件(如httpd.conf或apache2.conf),找到MPM配置段:
<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    # 根据服务器内存调整,例如4G内存可设置为1024-2000
    MaxRequestWorkers      1500
    MaxConnectionsPerChild   0
</IfModule>
  • 若使用event或worker模块,对应调整MaxRequestWorkers和ThreadsPerChild参数,确保总并发处理能力覆盖压测需求。

2. 修正Proxy Protocol配置一致性

确认HAProxy与Apache的Proxy Protocol配置完全匹配:

  • HAProxy的server指令默认使用send-proxy(v1版本),需在Apache虚拟主机配置中明确指定协议版本:
RemoteIPProxyProtocolVersion 1
  • 确保Apache的443端口同时支持SSL和Proxy Protocol,无端口冲突或配置重叠。

3. 提升系统级资源限制

高并发场景下系统文件句柄、连接队列限制会成为瓶颈:

调整文件句柄限制

编辑/etc/security/limits.conf,添加:

haproxy soft nofile 65535
haproxy hard nofile 65535
apache soft nofile 65535
apache hard nofile 65535

重启HAProxy和Apache服务生效。

优化内核网络参数

编辑/etc/sysctl.conf,添加:

net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

执行sysctl -p使参数立即生效。

4. 调整超时配置

延长HAProxy和Apache的超时时间,避免高并发下连接过早断开:

  • HAProxy的defaults段调整:
timeout connect         30s
timeout server          2m
  • Apache配置中添加:
Timeout 120

5. 排除压测工具限制

ab工具在极高并发下可能存在客户端资源瓶颈,尝试用wrk等工具复现问题:

wrk -c 1020 -d 30s https://XXXX

若其他工具无报错,则说明是ab自身限制导致。

额外排查步骤

将Apache的日志级别调为debug,重新压测后查看error_log,可能会捕获到之前未发现的连接处理错误:

LogLevel debug

内容的提问来源于stack exchange,提问作者Ridae HAMDANI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:15:35