Traefik unabe to create none www to www redirect



我在创建无 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$${1}
    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$${1}
    traefik.ingress.kubernetes.io/redirect-permanent: "true"

一起。 原因可以在这里找到: https://github.com/containous/traefik/blob/v1.7/provider/kubernetes/kubernetes.go#L992

此特殊案例的解决方案如下所示。

    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/$1
    traefik.ingress.kubernetes.io/redirect-permanent: "true"

我需要使 none www 到 www 但也 http 到 https,通过这个配置,我能够同时实现这两个目标。

希望这有助于 ohters 面对同样的问题。

最新更新