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

如何在Apache反向代理中传递SERVER_PROTOCOL参数

解决Apache反向代理传递客户端HTTP版本到后端的问题

问题原因

你使用的%{SERVER_PROTOCOL}e环境变量,实际指向的是Apache与后端应用通信时采用的HTTP/1.1协议,而非客户端与代理之间的HTTP/2协议。并且在反向代理的请求头配置上下文里,该环境变量无法被正确读取,导致后端收到空值。

正确配置方案

方案1:直接获取客户端请求协议

使用%{REQUEST_PROTOCOL}s格式符,它能直接获取客户端发起请求时使用的HTTP协议版本:

RequestHeader set X-Client-HTTP-Version "%{REQUEST_PROTOCOL}s"

方案2:通过HTTP2环境变量判断

当客户端使用HTTP/2请求时,Apache会自动设置HTTP2环境变量为on,可据此区分协议版本:

# 若为HTTP/2请求,设置对应头
RequestHeader set X-Client-HTTP-Version "HTTP/2" expr=%{HTTP2} == 'on'
# 否则默认设置为HTTP/1.1
RequestHeader set X-Client-HTTP-Version "HTTP/1.1" expr=%{HTTP2} != 'on'

验证方法

配置完成后重启Apache,后端应用通过读取X-Client-HTTP-Version请求头,就能获取客户端实际使用的HTTP版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:54:21