proxybuffering是核心开关,决定是否缓存后端响应再返回:on适合常规api,off适合sse等实时流;启用时需配proxybuffers、proxybuffersize和proxymaxmembuffers;大上传需调大proxyreceivebuffersize和limitrequestbody。
apache 的 proxypass 本身不直接设置缓冲区大小,真正控制缓冲行为的是配套的 mod_proxy 缓冲指令。是否需要调大、调小或禁用缓冲,取决于你代理的是普通动态接口、流式响应(如 sse、日志推送)、还是大文件下载等场景。
ProxyBuffering 是核心开关
它决定 Apache 是否暂存后端响应再统一返回给客户端:
-
ProxyBuffering On(默认):启用缓冲,适合常规 HTML/API 响应,能平滑网络抖动、减少客户端等待 -
ProxyBuffering Off:禁用缓冲,后端每写一块数据,Apache 就立刻转发一块,适合实时流、SSE、WebSocket 信令等
启用缓冲时,还需配合以下三项调整实际缓冲能力:
-
ProxyBuffers 8 64KB:分配 8 个缓冲区,每个 64KB;可按需增大(如16 128KB),尤其应对后端偶发大响应体 -
ProxyBufferSize 128KB:初始缓冲区大小,用于存放响应头 + 首块响应体;建议 ≥ 后端平均响应头长度 + 预估首块体大小(如含长 Cookie 或 JWT 的响应,设为256KB更稳妥) -
ProxyMaxMemBuffers 32:限制最多使用的内存缓冲区数量,防止单次大响应(如导出报表)耗尽 Apache 内存
大请求体上传时的接收缓冲
若前端上传大文件(如 100MB 表单提交),Apache 作为代理需能完整接收请求体,否则会截断或报错:
安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
-
ProxyReceiveBufferSize 2097152:mod_proxy 内部读取请求体的缓冲区大小,单位字节(建议设为 2MB) -
LimitRequestBody 104857600:全局请求体硬上限,单位字节(如设为 100MB);注意这不是 Proxy 模块专属,而是 Apache 核心指令
流式/实时场景必须关闭缓冲
例如代理异步任务日志、SSE 接口或 HLS 流媒体时,缓冲会破坏实时性。除 ProxyBuffering Off 外,还需:
-
SetEnv proxy-nokeepalive 1:禁用连接复用,避免流被意外中断 -
SetEnv proxy-sendbuffersize 0:强制禁用输出缓冲,确保逐块透传 -
Header always set Cache-Control "no-cache, no-store, must-revalidate":防止中间缓存干扰
这些设置需放在 <location></location> 块内,精准作用于对应路径,不影响其他接口。










