我可以在 OpenShift 上启用 HTTP/2 吗?

问题描述 投票:0回答:5

我可以为 OpenShift 上托管的网站启用 HTTP/2 吗?

我知道你可以使用CloudFlare作为代理,那么它将提供对HTTP/2的支持。但我感兴趣的是能够在 OpenShift 上精确配置我的应用程序。

openshift h2 saas spdy http2
5个回答
7
投票

不,你不能。

希望有一天这个答案会是错误的,并且有人会根据坎宁安定律纠正我。


3
投票

HTTP/2 已登陆 OpenShift 4.5! https://docs.openshift.com/container-platform/4.5/networking/ingress-operator.html#nw-http2-haproxy_configuring-ingress

TL;DR 在整个集群上启用 HTTP/2:

$ oc annotate ingresses.config/cluster ingress.operator.openshift.io/default-enable-http2=true

2
投票

还有希望!

Openshift 3 本身依赖于 HAProxy,不支持 H/2,因此不幸的是几乎不支持。.希望能够部分支持 HTTP/2。您可以关注这个 GitHub 问题,看看他们是否会考虑更换 HAProxy。

从提到的问题来看:

其实状态也不算太差。当公共路由使用直通 TLS 终止策略时,我们使 HTTP/2 正常工作。

所以:

Pod 之间的 H2 有效(使用 TLS) Pod 之间的 H2C 有效(带和不带 TLS 的 H2C) 公共路由后面的 H2 要求路由 TLS 终止为“直通” 公共路由后面的 H2C 需要相同的并且在服务器端启用 SSL

HAProxy 本身也承诺将 HTTP/2 作为其下一个版本的主要焦点(我们被嘲笑希望 1.7 版本支持 H/2,但这并没有发生)。如果您想了解有关 HAProxy H/2 支持的更多信息,那么这里有一个很有前途的 SO 答案Discourse 讨论


1
投票

从 OpenShift 3.11 开始,您可以使用环境变量

ROUTER_ENABLE_HTTP2
启用它,请参阅 https://docs.openshift.com/container-platform/3.11/release_notes/ocp_3_11_release_notes.html#ocp-311-haproxy-enhancements

实现 HAProxy 路由器 HTTP/2 支持(终止于路由器)。

$ oc set env dc/router ROUTER_ENABLE_HTTP2=true

0
投票

从 OpenShift 4.10 开始,还支持 http/2 的 TLS 边缘终止。请参阅 PR:https://github.com/openshift/router/pull/328

TLDR;在 Kubernetes 服务规范中添加

appProtocol: h2c

但是文档(OpenShift 4.15)仍然指出这是不受支持的情况:

从 HAProxy 到应用程序 Pod 的连接只能使用 HTTP/2 来重新加密路由,而不能用于边缘终止或不安全的路由。此限制是因为 HAProxy 使用应用程序级协议协商 (ALPN)(TLS 扩展)来与后端协商 HTTP/2 的使用。这意味着端到端 HTTP/2 可以通过直通和重新加密来实现,而不是通过不安全或边缘终止的路由来实现。

© www.soinside.com 2019 - 2024. All rights reserved.