gpt4 book ai didi

Kubernetes 入口 nginx 重定向域,也适用于所有重定向域的子域

转载 作者:行者123 更新时间:2023-12-02 11:33:29 30 4
gpt4 key购买 nike

我想在 Kubernetes 入口 Nginx 中重定向主域,但希望将子域应用于重定向的主域。
这是示例网站: my.website.com
在这个网站里面有许多子域,分别是/abc、/def、/abc/aa、/def/bb 等。
对于我的 Kubernetes 入口 Nginx,我想将 my.website.com 重定向到 this.website.com
并希望所有子域都重定向到 this.website.com
这是我想要的示例:my.website.com/abcthis.website.com/abc这是我尝试过的重定向入口 yaml:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/permanent-redirect: https://this.website.com
name: redirect-subdomains-too
spec:
rules:
- host: my.website.com
http:
paths:
- backend:
serviceName: redirect-service
servicePort: 7990
path: /
显然,当我尝试时 my.website.com/abcmy.website.com/abc/aa这将重定向到 this.website.com不至 this.website.com/abcthis.website.com/abc/aa .
如何编写此入口的脚本?

最佳答案

永久重定向就像所有东西的“硬编码”。您可能想要 rewrite和/或 server-snippet .然后,您可以为每个主机设置多个主机规则:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
nginx.ingress.kubernetes.io/server-snippet: |
if ($host ~ "my.website.com|my2.website.com")
{
rewrite ^ https://this.website.com$request_uri permanent;
}
name: redirect-subdomains-too
spec:
rules:
- host: my.website.com
http:
paths:
- backend:
serviceName: redirect-service
servicePort: 7990
path: (/|$)(.*)
- host: my.website.com
http:
paths:
- backend:
serviceName: redirect-service
servicePort: 7990
path: (/|$)(.*)
- host: this.website.com
http:
paths:
- backend:
serviceName: redirect-service
servicePort: 7990
path: (/|$)(.*)

您始终可以通过运行来检查配置:
kubectl exec -t <nginx-ingress-pod> cat nginx.conf

关于Kubernetes 入口 nginx 重定向域,也适用于所有重定向域的子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62902814/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com