首页 > 解决方案 > Kubernetes Ingress rewrite-target - 无论如何要在重写时保留地址?

问题描述

我有一个在 pod 中运行的 oauth2 服务,需要用户发送请求到

http://[地址]/oauth/token?grant_type=client_credentials&scope=[范围]

我有如下的 Ingress 规则,在我看来,Ingress 在重写时正在删除“oauth”字。

例如,当用户向 http://address.com/oauth/token?grant_type=client_credentials&scope=[scope]提交请求时使用下面的 Ingress 规则, 那么 auth-service 会收到这样的请求: http ://address.com /token?grant_type=client_credentials&scope=[范围]

有没有什么办法解决这一问题?

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gateway-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: address.com
    http:
        paths:
        - path: /oauth/*
          backend:
            serviceName: auth-service
            servicePort: 8052

标签: kuberneteskubernetes-ingressnginx-ingress

解决方案


我通过删除 rewrite-target 注释解决了这个问题。

我还必须在 /oauth 之后删除 /*

我希望这对其他人有所帮助。


推荐阅读