首页 > 解决方案 > 如何使用 nginx 入口控制器创建从域到另一个域的 url 重定向并屏蔽 url?

问题描述

我有以下问题要解决:

我需要允许客户在我们的网站上使用他们的自定义域。我已经创建了一个白标子域,并要求客户在他们的 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

但是当我点击https://clientsubdomain.clientdomain.com它重定向到我的https://mywhitelabelsubdomain.domain.com更改浏览器上的 url。如何使此重定向保留原始网址?

谢谢您的帮助!

标签: nginxkubernetes

解决方案


推荐阅读