是否可以在 k8s Ingress Controller 中重写 HOST 标头?

Agu*_*ama 12 nginx haproxy kubernetes envoyproxy

由于某些依赖 Host 标头才能正常运行的遗留应用程序,我需要一个能够重写 Host 标头并将其传递给下游(后端)的 Ingress(代理等)。是否有支持此功能的入口控制器?

例子:

最终用户通过foo.com/afor backendafoo.com/bfor backend访问我们的网站b。但由于ab是遗留应用程序,它只接受:

  • a 接受连接时 Host: a.foo.com
  • b 接受连接时 Host: b.foo.com

Cam*_*mil 22

这可以使用此注释来完成: nginx.ingress.kubernetes.io/upstream-vhost: host.example.com


Har*_*var 0

您可以在 Kubernetes 上使用 ingress nginx 控制器并设置头,还可以传输到后端并管理来自 ingress 对象的服务连接。

这里分享标题中重写目标的链接:https://kubernetes.github.io/ingress-nginx/examples/rewrite/

ingress nginx 也可以与 SSL 证书管理器配合使用,您可以添加它。

使用入口注释管理其他事情。

检查入口 SSL 设置,您可以根据需要修改它: https: //www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager- on-digitalocean-kubernetes

Ingress 将会像最后一样

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:
  - hosts:
    - myapp.abc.com
    secretName: ingress-tls
  rules:
  - host: myapp.abc.com
    http:
      paths:
      - path: /my-service
        backend:
          serviceName: my-backend
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)