mod_proxy_http2
描述: | HTTP/2 mod_proxy的支持模块 |
状态: | 延期 |
模块标识符: | 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的服务,因此在 order 中以获得处理 HTTP/2 代理请求的能力,mod_proxy和mod_proxy_http2需要由服务器加载。
mod_proxy_http2使用 HTTP/1.1 或 HTTP/2 处理传入的前端请求。在这两种情况下,代理到同一后端的请求都会尽可能通过单个 TCP 连接发送(即,当连接可以是 re-used 时)。
警告:不会尝试将多个 HTTP/1.1 前端请求(配置为代理到同一后端)合并为属于同一 HTTP/2 请求的 HTTP/2 流。每个 HTTP/1.1 前端请求将使用单独的 HTTP/2 请求代理到后端(如果可能,尝试 re-use 相同的 TCP 连接)。
该模块依赖于libnghttp2来提供核心 http/2 引擎。
警告
这个模块是实验性的。相对于其他标准模块,其行为,指令和默认值在发布之间会发生更多变化。建议用户查阅“CHANGES”文件以获取可能的更新。
警告
在有保护你的服务器之前不要启用代理。开放代理服务器对您的网络和整个 Internet 都是危险的。
基本例子
以下示例演示了如何为反向代理配置后端连接的 HTTP/2。
HTTP/2(TLS)
ProxyPass "/app" "h2://app.example.com" ProxyPassReverse "/app" "https://app.example.com"
HTTP/2(明文)
ProxyPass "/app" "h2c://app.example.com" ProxyPassReverse "/app" "http://app.example.com"
在ProxyPassReverse
中为反向代理h2
(或h2c
)协议配置的方案通常由用户代理https
(resp.http
)expected/used。
请求备注
mod_proxy_http使用LogFormat或ErrorLogFormat中的%{VARNAME}n
格式为 logging 创建以下请求注释:
- proxy-source-port
本地 port 用于连接到后端服务器。 - proxy-status
从后端服务器收到的 HTTP/2 状态。