ProxyPass 指令的 keepalive 等参数必须严格置于行末、单空格分隔、大小写敏感(On/Off)、不可加引号或逗号,且 ProxySet 必须单独成行。
apache 的 proxypass 指令中启用 keepalive=on 及相关参数,**不是自由写键值对,而是有严格语法顺序和位置要求的**。写错位置、大小写错误或混用空格/等号形式,都会导致 apache 启动失败或参数被静默忽略。
必须写在 ProxyPass 行末,且用空格分隔
所有 ProxyPass 的附加参数(如 keepalive、retry、acquire)只能出现在该指令的**最后部分**,与 URL 目标之间用**单个空格**分隔,不能换行、不能加引号、不能用逗号或分号隔开。
- ✅ 正确:
ProxyPass /api http://127.0.0.1:8080/api keepalive=On retry=30 - ❌ 错误:
ProxyPass /api http://127.0.0.1:8080/api keepalive=on(小写on无效) - ❌ 错误:
ProxyPass /api http://127.0.0.1:8080/api keepalive="On"(加引号会被当作文本值解析) - ❌ 错误:
ProxyPass /api http://127.0.0.1:8080/api keepalive=On, retry=30(逗号非法)
大小写敏感:On / Off 必须首字母大写
keepalive 参数只接受 On 或 Off,区分大小写。写成 on、ON、true 或 1 均无效,Apache 会当作非法值跳过,退回到默认短连接行为。
安全更新和维护 CLI Proxy API(CPA)部署与配置。用于 CPA 镜像升级、配置变更、认证目录兼容修复、上线验证与回滚。适用于用户提到“CPA 更新/升级/配置改了/容器重建/回滚”等场景。
- ✅
keepalive=On - ✅
keepalive=Off - ❌
keepalive=on(Apache 不识别,等同未设置) - ❌
keepalive=true(语法错误,启动时可能报Invalid argument)
多个参数之间用空格,不可重复或冲突
同一行 ProxyPass 中可叠加多个参数,但必须全部靠空格分隔,且不能语义冲突。例如 max=50 和 smax=20 可共存,但 keepalive=Off 和 ttl=60 同时出现无意义(ttl 在非 keepalive 模式下不生效)。
- ✅
ProxyPass /app http://srv:8080/app keepalive=On ttl=45 max=30 retry=20 - ⚠️ 无效组合:
ProxyPass /app http://srv:8080/app keepalive=Off ttl=60(ttl被忽略) - ⚠️ 冗余写法:
ProxyPass /app http://srv:8080/app keepalive=On keepalive=On(后一个覆盖前一个,无害但无用)
ProxySet 是独立指令,不能和 ProxyPass 写在同一行
ProxySet 是专门用于配置后端目标连接池的指令,它**必须单独成行**,且需配合 <Proxy> 容器或作用于已定义的 balancer 成员。它不能塞进 ProxyPass 行里,也不能替代行末参数。
- ✅ 正确(推荐统一管理):
<Proxy "http://127.0.0.1:8080/">
ProxySet keepalive=On ttl=45 max=30 retry=20
</Proxy>
ProxyPass /api http://127.0.0.1:8080/api - ❌ 错误:
ProxyPass /api http://127.0.0.1:8080/api ProxySet keepalive=On(语法错误,Apache 报Invalid command 'ProxySet')


















