如何使用重定向在 google 云中设置 yaml 入口
how to setup yaml ingress in google cloud with redirect
我正在 Google 云环境中设置一个入口和负载均衡器。
我知道如何设置主机和它的路径,但我不知道当用户访问特定站点时如何设置 http://example.com/
我希望他重定向到 http://example.com/en
。
注:
http
=> https
/
=> /en
已更新
我添加了 app-root: /en
(但它什么也没做)。
这是我当前的 yaml:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: gce
kubernetes.io/ingress.global-static-ip-name: our-frontend-static-ip
networking.gke.io/managed-certificates: example-certificate
appgw.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/app-root: /en
name: example-ingress
namespace: default
spec:
rules:
- host: anotherexample.com
http:
paths:
- backend:
serviceName: anotherexample-service
servicePort: 80
- host: example.com
http:
paths:
- path: /nl
backend:
serviceName: example-nl-service
servicePort: 80
- path: /en
backend:
serviceName: example-en-service
servicePort: 80
所以,我的 yaml 中有 2 个主机,我想要:当 url 对其中 1 个主机正确时:example.com
它必须转到 example.com/en
(这是用于多语言目的)
我们可以在 ingress 中的同步更改回来后更改负载均衡器禁令中的设置。
Kubernetes 支持多个彼此不同的 Ingress Controller。例如,您正在尝试使用 Ingress GCE and there is also a popular Nginx Ingress.
您的用例中的主要问题是 Ingress GCE
不支持重写。可以找到关于此的持续功能请求 here。
为了能够使用重写,您需要部署 Nginx Ingress Controller 并在 yaml
中切换注释来自:
kubernetes.io/ingress.class: "gce"
至:
kubernetes.io/ingress.class: "nginx"
可以帮助您解决此问题的资源如下:
我正在 Google 云环境中设置一个入口和负载均衡器。
我知道如何设置主机和它的路径,但我不知道当用户访问特定站点时如何设置 http://example.com/
我希望他重定向到 http://example.com/en
。
注:
http
=>https
/
=>/en
已更新
我添加了 app-root: /en
(但它什么也没做)。
这是我当前的 yaml:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: gce
kubernetes.io/ingress.global-static-ip-name: our-frontend-static-ip
networking.gke.io/managed-certificates: example-certificate
appgw.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/app-root: /en
name: example-ingress
namespace: default
spec:
rules:
- host: anotherexample.com
http:
paths:
- backend:
serviceName: anotherexample-service
servicePort: 80
- host: example.com
http:
paths:
- path: /nl
backend:
serviceName: example-nl-service
servicePort: 80
- path: /en
backend:
serviceName: example-en-service
servicePort: 80
所以,我的 yaml 中有 2 个主机,我想要:当 url 对其中 1 个主机正确时:example.com
它必须转到 example.com/en
(这是用于多语言目的)
我们可以在 ingress 中的同步更改回来后更改负载均衡器禁令中的设置。
Kubernetes 支持多个彼此不同的 Ingress Controller。例如,您正在尝试使用 Ingress GCE and there is also a popular Nginx Ingress.
您的用例中的主要问题是 Ingress GCE
不支持重写。可以找到关于此的持续功能请求 here。
为了能够使用重写,您需要部署 Nginx Ingress Controller 并在 yaml
中切换注释来自:
kubernetes.io/ingress.class: "gce"
至:
kubernetes.io/ingress.class: "nginx"
可以帮助您解决此问题的资源如下: