Traefik 无法创建 none www 到 www 重定向
Traefik unabe to create none www to www redirect
我在创建 none www 重定向时遇到问题。
我尝试了对其他人有用的例子,但在我的例子中没有任何反应。
有谁能够帮助我?
我正在使用 Kubernetes 1.13.5 和 traefik:1.7.8-alpine。
配置如下所示。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/redirect-entry-point: https
traefik.ingress.kubernetes.io/redirect-permanent: "true"
traefik.ingress.kubernetes.io/redirect-regex: ^https?://xn--neophytenbekmpfung-wtb.ch/?(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://www.xn--neophytenbekmpfung-wtb.ch$
traefik.ingress.kubernetes.io/redirect-permanent: "true"
ingress.kubernetes.io/protocol: http
traefik.backend.loadbalancer.sticky: "true"
traefik.ingress.kubernetes.io/affinity: "true"
traefik.ingress.kubernetes.io/session-cookie-name: neophytenbekaempfung-sticky
traefik.ingress.kubernetes.io/error-pages: |-
fives:
status:
- "500-600"
backend: global-default-backend
query: "/500s.html"
fouro3:
status:
- "403"
backend: global-default-backend
query: "/403.html"
fours:
status:
- "400-499"
backend: global-default-backend
query: "/400s.html"
name: neophytenbekaempfung-sitebuilder-ingress
namespace: sitebuilder
spec:
rules:
- host: xn--neophytenbekmpfung-wtb.ch
http:
paths:
- backend:
serviceName: sitebuilder-app-service
servicePort: 80
path: /
- host: www.xn--neophytenbekmpfung-wtb.ch
http:
paths:
- backend:
serviceName: sitebuilder-app-service
servicePort: 80
path: /
亲切的问候
格拉德隆
好的。
问题的原因很简单。
你不能使用
traefik.ingress.kubernetes.io/redirect-entry-point: https
traefik.ingress.kubernetes.io/redirect-permanent: "true"
和
traefik.ingress.kubernetes.io/redirect-regex: ^https?://xn--neophytenbekmpfung-wtb.ch/?(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://www.xn--neophytenbekmpfung-wtb.ch$
traefik.ingress.kubernetes.io/redirect-permanent: "true"
在一起。
可以在这里找到原因:
https://github.com/containous/traefik/blob/v1.7/provider/kubernetes/kubernetes.go#L992
这个 Particulare 案例的解决方案如下所示。
traefik.ingress.kubernetes.io/redirect-regex: ^http://.*?xn--neophytenbekmpfung-wtb.ch/|^https://xn--neophytenbekmpfung-wtb.ch/(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://www.xn--neophytenbekmpfung-wtb.ch/
traefik.ingress.kubernetes.io/redirect-permanent: "true"
我需要将 none www 转换为 www,还需要将 http 转换为 https,使用此配置我可以同时实现两者。
希望对遇到同样问题的其他人有所帮助。
我在创建 none www 重定向时遇到问题。 我尝试了对其他人有用的例子,但在我的例子中没有任何反应。 有谁能够帮助我? 我正在使用 Kubernetes 1.13.5 和 traefik:1.7.8-alpine。 配置如下所示。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/redirect-entry-point: https
traefik.ingress.kubernetes.io/redirect-permanent: "true"
traefik.ingress.kubernetes.io/redirect-regex: ^https?://xn--neophytenbekmpfung-wtb.ch/?(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://www.xn--neophytenbekmpfung-wtb.ch$
traefik.ingress.kubernetes.io/redirect-permanent: "true"
ingress.kubernetes.io/protocol: http
traefik.backend.loadbalancer.sticky: "true"
traefik.ingress.kubernetes.io/affinity: "true"
traefik.ingress.kubernetes.io/session-cookie-name: neophytenbekaempfung-sticky
traefik.ingress.kubernetes.io/error-pages: |-
fives:
status:
- "500-600"
backend: global-default-backend
query: "/500s.html"
fouro3:
status:
- "403"
backend: global-default-backend
query: "/403.html"
fours:
status:
- "400-499"
backend: global-default-backend
query: "/400s.html"
name: neophytenbekaempfung-sitebuilder-ingress
namespace: sitebuilder
spec:
rules:
- host: xn--neophytenbekmpfung-wtb.ch
http:
paths:
- backend:
serviceName: sitebuilder-app-service
servicePort: 80
path: /
- host: www.xn--neophytenbekmpfung-wtb.ch
http:
paths:
- backend:
serviceName: sitebuilder-app-service
servicePort: 80
path: /
亲切的问候 格拉德隆
好的。 问题的原因很简单。 你不能使用
traefik.ingress.kubernetes.io/redirect-entry-point: https
traefik.ingress.kubernetes.io/redirect-permanent: "true"
和
traefik.ingress.kubernetes.io/redirect-regex: ^https?://xn--neophytenbekmpfung-wtb.ch/?(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://www.xn--neophytenbekmpfung-wtb.ch$
traefik.ingress.kubernetes.io/redirect-permanent: "true"
在一起。 可以在这里找到原因: https://github.com/containous/traefik/blob/v1.7/provider/kubernetes/kubernetes.go#L992
这个 Particulare 案例的解决方案如下所示。
traefik.ingress.kubernetes.io/redirect-regex: ^http://.*?xn--neophytenbekmpfung-wtb.ch/|^https://xn--neophytenbekmpfung-wtb.ch/(.*)
traefik.ingress.kubernetes.io/redirect-replacement: https://www.xn--neophytenbekmpfung-wtb.ch/
traefik.ingress.kubernetes.io/redirect-permanent: "true"
我需要将 none www 转换为 www,还需要将 http 转换为 https,使用此配置我可以同时实现两者。
希望对遇到同样问题的其他人有所帮助。