首页 > 解决方案 > 使用 kubernetes 在 traefik2 中自定义错误页面

问题描述

我想为我的 traefik 设置自定义错误页面。我已经设置了 IpWhitelist ( https://docs.traefik.io/v2.0/middlewares/ipwhitelist/ ) 中间件,它工作正常。但如果失败,它会显示标准错误页面“禁止”。我想用自定义错误页面替换它。

我添加了另一个中间件错误(https://docs.traefik.io/v2.0/middlewares/errorpages/),它适用于 404 我可以看到自定义错误页面。但在 Ipwhitelist 失败的情况下,它仍然显示标准的“禁止”(403)页面,而不是自定义错误页面。我已经设置了 400-405 的范围

我认为任何一个中间件都在工作,或者我做错了什么。我还想全局配置 Errors 中间件,这样我就不必在我在环境中配置的每个 IngressRouts 上进行指定。

traefik 错误服务

apiVersion: v1
kind: Service
metadata:
  name: traefikerror
  namespace: namespacename
spec:
  type: LoadBalancer
  ports:
  - name: http
    targetPort: 80
    port: 80
  selector:
    app: traefikerror
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: traefikerror
spec:
  replicas: 1
  selector:
    matchLabels:
      app: traefikerror
  template:
    metadata:
      labels:
        app: traefikerror
    spec:
      containers:
      - name: traefikerror
        image: imageId
        ports:
        - containerPort: 80

中间件

apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: traefikerror
spec:
  errors:
    status:
      - 400-405
    query: /test.html
    service:
      name: traefikerror
      port: 80

并在 IngressRoute 中设置此中间件。

标签: kuberneteskubernetes-ingresstraefiktraefik-ingress

解决方案


推荐阅读