Chain

    The Chain middleware enables you to define reusable combinations of other pieces of middleware. It makes reusing the same groups easier.

    Docker

    Kubernetes

    1. apiVersion: traefik.containo.us/v1alpha1
    2. kind: IngressRoute
    3. metadata:
    4. name: test
    5. namespace: default
    6. spec:
    7. entryPoints:
    8. - web
    9. routes:
    10. - match: Host(`mydomain`)
    11. kind: Rule
    12. services:
    13. - name: whoami
    14. port: 80
    15. middlewares:
    16. - name: secured
    17. ---
    18. apiVersion: traefik.containo.us/v1alpha1
    19. kind: Middleware
    20. metadata:
    21. name: secured
    22. spec:
    23. chain:
    24. middlewares:
    25. - name: https-only
    26. - name: known-ips
    27. - name: auth-users
    28. ---
    29. apiVersion: traefik.containo.us/v1alpha1
    30. kind: Middleware
    31. metadata:
    32. basicAuth:
    33. users:
    34. - test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/
    35. ---
    36. apiVersion: traefik.containo.us/v1alpha1
    37. kind: Middleware
    38. metadata:
    39. name: https-only
    40. spec:
    41. redirectScheme:
    42. scheme: https
    43. ---
    44. apiVersion: traefik.containo.us/v1alpha1
    45. kind: Middleware
    46. metadata:
    47. name: known-ips
    48. spec:
    49. ipWhiteList:
    50. sourceRange:
    51. - 192.168.1.7
    52. - 127.0.0.1/32

    Marathon

    1. "labels": {
    2. "traefik.http.routers.router1.service": "service1",
    3. "traefik.http.routers.router1.middlewares": "secured",
    4. "traefik.http.routers.router1.rule": "Host(`mydomain`)",
    5. "traefik.http.middlewares.secured.chain.middlewares": "https-only,known-ips,auth-users",
    6. "traefik.http.middlewares.auth-users.basicauth.users": "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
    7. "traefik.http.middlewares.https-only.redirectscheme.scheme": "https",
    8. "traefik.http.middlewares.known-ips.ipwhitelist.sourceRange": "192.168.1.7,127.0.0.1/32",
    9. "traefik.http.services.service1.loadbalancer.server.port": "80"
    10. }

    Rancher

    1. # ...
    2. router1:
    3. service: service1
    4. middlewares:
    5. - secured
    6. rule: "Host(`mydomain`)"
    7. middlewares:
    8. secured:
    9. chain:
    10. middlewares:
    11. - https-only
    12. - known-ips
    13. - auth-users
    14. auth-users:
    15. basicAuth:
    16. users:
    17. - "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"
    18. https-only:
    19. redirectScheme:
    20. scheme: https
    21. known-ips:
    22. ipWhiteList:
    23. sourceRange:
    24. - "192.168.1.7"
    25. - "127.0.0.1/32"
    26. services:
    27. service1:
    28. loadBalancer:

    File (TOML)