Apache HTTP Server 版本 2.4
描述 | 用于 mod_proxy 的 HTTP/2 支持模块 |
---|---|
状态 | 扩展 |
模块标识符 | proxy_http2_module |
源文件 | mod_proxy_http2.c |
兼容性 | 在 httpd 2.4.19 及更高版本中可用 |
mod_proxy_http2
仅支持 HTTP/2,它 *不* 提供任何降级到 HTTP/1.1 的功能。这意味着后端需要支持 HTTP/2,因为不会使用 HTTP/1.1 来代替。
此模块 *需要* mod_proxy
的服务,因此为了获得处理 HTTP/2 代理请求的能力,mod_proxy
和 mod_proxy_http2
需要同时被服务器加载。
mod_proxy_http2
使用 HTTP/1.1 或 HTTP/2 处理传入的前端请求。在这两种情况下,只要可能(即当连接可以重复使用时),代理到相同后端的请求都会通过单个 TCP 连接发送。
注意:不会尝试将多个 HTTP/1.1 前端请求(配置为代理到相同后端)合并到属于相同 HTTP/2 请求的 HTTP/2 流中。每个 HTTP/1.1 前端请求都将使用单独的 HTTP/2 请求代理到后端(如果可能,尝试重复使用相同的 TCP 连接)。
此模块依赖于 libnghttp2 来提供核心 http/2 引擎。
此模块处于实验阶段。相对于其他标准模块,其行为、指令和默认值可能会在不同版本之间发生更多变化。鼓励用户查阅“CHANGES”文件以获取潜在的更新。
在您 保护服务器 之前,请勿启用代理。开放式代理服务器对您的网络和整个互联网都存在危险。
以下示例演示了如何为反向代理配置后端连接的 HTTP/2。
ProxyPass "/app" "h2://app.example.com" ProxyPassReverse "/app" "https://app.example.com"
ProxyPass "/app" "h2c://app.example.com" ProxyPassReverse "/app" "http://app.example.com"
在 ProxyPassReverse
中配置上述方案以反向代理 h2
(或 h2c
)协议时,使用的方案是用户代理预期/使用的常规 https
(分别为 http
)。
mod_proxy_http
为使用 LogFormat
或 ErrorLogFormat
中的 %{VARNAME}n
格式进行日志记录创建以下请求说明。