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