如何解决是否可以在Istio Gateway上启用具有TLS终止功能的HTTP / 2?
是否可以在Istio Gateway上启用带有TLS(mTLS)终止功能的HTTP / 2?然后使用HTTP / 2将流量转发到应用程序
解决方法
是的,这是可能的。服务之间的Http 2在ALPN中协商(在mTLS握手期间)。
然后,您可以通过将service port name (protocol selection)设置为http2
,使用Http 2将来自sidecar代理的流量转发到您的应用程序容器。
您的应用的示例服务:
kind: Service
metadata:
name: myapp
spec:
ports:
- number: 8080
name: http2 # protocol selection by name - important to have http2 here
,
如果您的网络服务器支持HTTP2协议,那么应该没有任何问题。
当http / 2请求到达时,将保持tсp连接直到isitio入口网关或直到Web应用程序?
据我所知,连接应该一直保留到wep-app。如果是http2,则Ingress网关将负责传递请求,如果是http1.1,则将其从http1.1升级到http2。
正如@suren在他的回答here
中所述您可以在istio configMap中设置h2UpgradePolicy,它将把所有传入的HTTP 1.1连接升级到http2,因此只有与http2的连接才能通过。
非常重要:要使其正常运行,下游的对等方前面的服务必须具有已命名的端口,并且必须将其称为http
apiVersion: v1
kind: Service
metadata:
name: demo
spec:
ports:
- name: http #<- this parameter is mandatory to upgrade to HTTP2
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
另外,还有一种方法可以使用Destination Rule来实现特定的名称空间和pod,可以使用ConnectionPoolSettings.HTTPSettings.H2UpgradePolicy来实现,它将http1.1连接升级到http2。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。