【问题标题】:KONG API GW. How to redirect http response to httpsKONG API GW。如何将http响应重定向到https
【发布时间】:2021-02-22 10:58:20
【问题描述】:
我们有将文件传输到 ui 的后端服务。然而,我们的结构是分层的,其中 UI 发出 https 请求以获取相关文件,并且后端服务向另一个后端服务发出 http 请求。然后响应作为 http 流发送。因此,我们在 Chrome 而不是 firefox 上收到网络失败错误。这是现有流程的简单结构。
我们如何克服这个失败的网络错误?我们认为原因是 https 请求是用 http 流响应的。你怎么看?
【问题讨论】:
标签:
google-chrome
http
kubernetes
https
kong
【解决方案1】:
我认为 https 和 http 的响应没有任何区别。我有很多用于 https 请求但 http 响应的用例。
"curl -X GET "http://httpbin.org/anything" -v" 和 "curl -X GET "https://httpbin.org/anything" -v" 的响应头完全相同。
你检查过kong的错误日志吗?
【解决方案2】:
我在 Kong 中配置 ingres 就像
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: kong
#configuration.konghq.com: https-only
cert-manager.io/cluster-issuer: konga
kong.ingress.kubernetes.io/proxy-read-timeout: "1800"
kong.ingress.kubernetes.io/proxy-send-timeout: "1800"
kong.ingress.kubernetes.io/rewrite-target: /
kong.ingress.kubernetes.io/proxy-body-size: "50m"
kong.ingress.kubernetes.io/force-ssl-redirect: "true"
ingress.kubernetes.io/force-ssl-redirect: "true"
name: konga-ingress
spec:
rules:
- host: konga.test.tk
http:
paths:
- backend:
serviceName: konga
servicePort: 80
tls:
- hosts:
- konga.test.tk
secretName: konga
在后台,我曾经发送纯 HTTP 请求,SSL termination 发生在 API gateway 或者我们可以说 ingress 级别。您还可以查看 Kong 部署的日志,这可能是由于 Timeout 问题或 size 限制造成的。
我使用 kong 作为入口控制器,但是如果您作为控制器或 API 网关运行,您可以根据需要在后台更改配置。