On this page
Apache 模块 mod_proxy_http2
Description: | mod_proxy的 HTTP/2 支持模块 |
---|---|
Status: | Extension |
Module Identifier: | proxy_http2_module |
Source File: | mod_proxy_http2.c |
Compatibility: | 在 httpd 2.4.19 及更高版本中可用 |
Summary
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 引擎。
Warning
该模块是实验性的。相对于其他标准模块,版本之间的行为,指令和默认值可能会有更多更改。鼓励用户查阅“ CHANGES”文件以获取可能的更新。
Warning
在拥有保护您的服务器之前,不要启用代理。开放式代理服务器对您的网络和整个 Internet 都是危险的。
Basic Examples
下面的示例演示如何为反向代理的后端连接配置 HTTP/2.
HTTP/2 (TLS)
ProxyPass "/app" "h2://app.example.com"
ProxyPassReverse "/app" "https://app.example.com"
HTTP/2 (cleartext)
ProxyPass "/app" "h2c://app.example.com"
ProxyPassReverse "/app" "http://app.example.com"
Note
上面在ProxyPassReverse
中为反向代理h2
(或h2c
)协议配置的方案是用户代理预期/使用的常规https
(分别为http
)。
Request notes
mod_proxy_http使用LogFormat或ErrorLogFormat的%{VARNAME}n
格式创建以下记录请求日志:
proxy-source-port
- 用于连接到后端服务器的本地端口。
proxy-status
- 从后端服务器收到的 HTTP/2 状态。