Nginx反向代理场景下是否支持上游服务器HTTP2?支持版本是多少?
Nginx 上游HTTP2连接支持与配置修复
Nginx支持与上游服务器建立HTTP2连接,该功能在开源版1.13.9版本开始正式提供(Nginx Plus更早引入该特性)。
你的配置未触发ALPN扩展协商HTTP2的核心原因是:默认情况下proxy_pass使用HTTP/1.x协议,不会主动启用上游HTTP2。要实现预期的HTTP2上游连接,需调整配置如下:
修正后的代理配置
location / { proxy_pass https://example.com/ http2; # 添加http2参数指定上游协议 proxy_ssl_certificate "path_to_certificate"; proxy_ssl_certificate_key "path_to_key"; proxy_ssl_protocols TLSv1.2 TLSv1.3; # HTTP2要求至少TLSv1.2,建议仅保留现代版本 proxy_ssl_ciphers HIGH:!aNULL:!MD5; proxy_ssl_verify off; }
关键注意事项
- 添加
http2参数后,Nginx会在与上游的TLS握手时自动携带ALPN扩展,协商建立HTTP2连接。 - 若上游服务器不支持HTTP2,Nginx会自动降级使用HTTP/1.x协议。
- 务必确保
proxy_ssl_protocols包含TLSv1.2或更高版本,因为HTTP2协议不兼容TLSv1.1及以下版本。
内容的提问来源于stack exchange,提问作者Kavitha Ramachandra
相关产品推荐
相关产品推荐

