我的网站是否可以在OpenShift上启用HTTP/2?
我知道可以使用CloudFlare作为代理,这样它将提供对HTTP/2的支持。但是我更感兴趣的是能够精确配置我的OpenShift应用程序的能力。
不,你不能。
希望有一天我的回答是错误的,并且有人会根据坎宁安定律来纠正我。
$ oc annotate ingresses.config/cluster ingress.operator.openshift.io/default-enable-http2=true
有希望了!
Openshift 3本身依赖于不支持H/2的HAProxy,所以很遗憾几乎没有支持。但是对于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讨论。
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