Kong - 通过 HTTP/2 连接到上游
Posted
技术标签:
【中文标题】Kong - 通过 HTTP/2 连接到上游【英文标题】:Kong - connect to upstream via HTTP/2 【发布时间】:2020-09-29 16:56:35 【问题描述】:我尝试解决这个用例:
-
浏览器客户端通过 HTTP/2 连接到 Kong API 网关。
Kong 将 HTTP/2 连接代理到后端微服务并保持打开状态。
用例结果应该是,客户端通过 HTTP/2 与微服务连接。
看来,Kong 接受来自客户端的 HTTP/2 调用,而不是通过普通 HTTP 调用微服务。
这种情况有什么解决办法吗?我知道在 gRPC 案例中,Kong 应该能够与上游保持连接。
docker compose 中的设置:
#In docker-compose.yml
....
# I call running container at localhost:9081 with http2
KONG_PROXY_LISTEN: 0.0.0.0:9081 http2, 0.0.0.0:9082 http2 ssl
kong 配置文件中的设置(使用 DBless)
#In Kong.yml
services:
- name: target-service
host: target-api-test #docker container name
port: 9000
routes:
- name: target-api-route
paths:
- /microservice-api
【问题讨论】:
【参考方案1】:我认为这主要是因为 nginx 不支持指定 here 的上游服务器的 HTTP/2。
问:你们会在上游也支持 HTTP/2,还是只在客户端支持 HTTP/2?
A:目前,我们仅在客户端支持 HTTP/2。您不能使用 proxy_pass 配置 HTTP/2。
【讨论】:
以上是关于Kong - 通过 HTTP/2 连接到上游的主要内容,如果未能解决你的问题,请参考以下文章
代理到 Node/Express 上游时不常见的 NGINX 错误/超时(连接到上游时上游超时)
Kong 入门指南 - 通过Kong Gateway公开您的服务