{{- $root := . -}}
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: {{ include "ingress.name" . }}
namespace: demo
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host: "*.{{ .Values.host }}"
http:
paths:
{{- range $index, $service := .Values.deployments }}
- path: {{ $service.pathPrefix }}(/|$)(.*)
backend:
serviceName: {{ $service.deploymentName }}
servicePort: 80
{{- end }}
---
此入口配置已成功运行。
此外,当任何人点击URL:http://example.com时,它应该永久重定向http://example.com/login,那么我该如何实现呢?
谢谢。
您可以添加注释,例如
nginx.ingress.kubernetes.io/server-snippet: |
location ~ / {
rewrite / https://<example.com to use $host>/login permanent;
}
如果想使用配置片段
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($host = 'https://example.com/') {
return 301 https://example.com/login;
}
或
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite / https://example.com/login permanent;
如果查看,您也可以使用变量而不是使用固定值。
$request_uri, $uri, $host
是您可以利用的几个变量。
别忘了添加:
allow-snippet-annotations: "true"
和之后:
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite / https://example.com/login permanent;