如何为无 ALPN 客户端配置 Nginx 仅支持 HTTP2

Posted

技术标签:

【中文标题】如何为无 ALPN 客户端配置 Nginx 仅支持 HTTP2【英文标题】:How to config Nginx Only Support HTTP2 for No ALPN Clients 【发布时间】:2020-11-30 09:32:18 【问题描述】:

情况如下: 我们的客户想要支持一些旧的 ios mac 系统,它使用的网络库不支持 ALPN。我们的服务器设置为只接受 gRPC 请求,因此服务器不需要接受 HTTP1.1 请求。

那么如何禁用 nginx 接受 HTTP1.1 请求,只启用 HTTP2 支持并跳过 ALPN?

我尝试让 Nginx 默认支持 http2,但它仍然涉及 ALPN 过程。

【问题讨论】:

【参考方案1】:

似乎 nginx 是基于 ALPN 的 http2,所以没有解决方法。

我们的客户要求仅提供 http2 服务,因为他们使用的其他产品正在使用带有特使代理的 gRPC。 Envoy 似乎有能力在没有 alpn 的情况下提供仅 http2 的服务,但有待于找出原因(因为文档没有明确说明)

【讨论】:

以上是关于如何为无 ALPN 客户端配置 Nginx 仅支持 HTTP2的主要内容,如果未能解决你的问题,请参考以下文章

sh RPM使用静态OpenSSL 1.1在CentOS 6/7上使用ALPN构建Nginx 1.11.x(在Chrome中支持http / 2支持需要1.02+)

服务器中不支持 ALPN 的 HTTP/2 h2

如何为 WebSocket 协议配置 AWS ELB 和 Nginx? [关闭]

我可以在没有 ALPN 支持的情况下实现 http/2 服务器吗?

如何为已有WordPress站点安装SSL证书开启全局https访问

如何为 NGINX 负载均衡器设置例外