如何使用nginx入口控制器创建从一个域到另一个域的url重定向并屏蔽url?

如何使用nginx入口控制器创建从一个域到另一个域的url重定向并屏蔽url?,nginx,kubernetes,Nginx,Kubernetes,我有以下问题需要解决: 我需要允许客户使用他们的自定义域为我们的网站。我已经创建了一个白标签子域,并要求客户端在其DNS上创建指向它的CNAME记录。我在这里试图实现的是,当客户端访问CNAME地址时,我的nginx入口控制器识别该地址,重定向到白标签子域,使用入口上配置的证书保留原始url 我已配置此入口: apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: ingress.kubernetes.i

我有以下问题需要解决:

我需要允许客户使用他们的自定义域为我们的网站。我已经创建了一个白标签子域,并要求客户端在其DNS上创建指向它的CNAME记录。我在这里试图实现的是,当客户端访问CNAME地址时,我的nginx入口控制器识别该地址,重定向到白标签子域,使用入口上配置的证书保留原始url

我已配置此入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    ingress.kubernetes.io/proxy-body-size: 50m
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/proxy-body-size: 50m
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/server-snippet: |
      if ($http_host = clientsubdomain.clientdomain.com)
      {
         rewrite (.*) https://mywhitelabelsubdomain.domain.com$1;
      }
  name: ingress-resource
  namespace: mynamespace
  
spec:
  rules:
  - host: mywhitelabelsubdomain.domain.com
    http:
      paths:
      - backend:
          serviceName: my-service
          servicePort: 80
        path: /?(.*)
  - host: clientsubdomain.clientdomain.com
    http:
      paths:
      - backend:
          serviceName: my-service
          servicePort: 80
        path: /?(.*)
  tls:
  - hosts:
    - mywhitelabelsubdomain.domain.com
    secretName: my-secret
但当我点击它时,它会重定向到我在浏览器上更改url。如何使此重定向保持原始url


谢谢你的帮助

换言之,您希望实现以下目标:浏览器显示“client.domain”,同时证书表示“whitelabel.domain”,并由用于“whitelabel”的服务提供服务。我说得对吗?@Nick是的,你说得对!我会玩它,让你知道。你可能需要检查一下this@Nick已经有了。如果您谈论的是proxy\u pass指令,那么在服务器代码段块上使用它有点棘手,因为nginx已经用proxy\u pass转换了-host块。在入口控制器日志中,您可以看到错误消息:此处无法使用代理\u pass。感谢您的帮助。您找到解决方案了吗?换句话说,您希望实现以下目标:浏览器显示“client.domain”,同时证书表示“whitelabel.domain”,并由用于“whitelabel”的服务提供服务。我说得对吗?@Nick是的,你说得对!我会玩它,让你知道。你可能需要检查一下this@Nick已经有了。如果您谈论的是proxy\u pass指令,那么在服务器代码段块上使用它有点棘手,因为nginx已经用proxy\u pass转换了-host块。在入口控制器日志中,您可以看到错误消息:此处无法使用代理\u pass。谢谢你的帮助。你找到解决办法了吗?