Skip to main content
  1. Posts/

Kombinasikan Beberapa Middleware dengan Middleware Chain

·1 min·
traefik traefik docker

Middleware Chain memungkinkan Anda menentukan dan kombinasikan beberapa konfig middleware lainnya seperti headers, inflightreq, ipwhitelist dan lain lain. Hal ini akan membuat penggunaan pada grup atau HTTP router yang sama menjadi lebih mudah.

Berikut ini merupakan contoh penerapan beberapa middleware untuk menambahkan headers, melimit koneksi(inflightreq), dan melimit akses berdasarkan IP(ipwhitelist) menggunakan docker-compose.

Pastikan traefik di server Anda sudah berjalan.

version: "3.9"

networks:
  public:
    external: true
  private:
    external: true

services:
  wordpress:
    image: "wordpress:latest"
    environment:
      WORDPRESS_DB_HOST: db_mysql
      WORDPRESS_DB_USER: web1
      WORDPRESS_DB_PASSWORD: web1
      WORDPRESS_DB_NAME: web1
    networks:
      - public
      - private
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=public"
      - "traefik.http.routers.wordpress.rule=Host(`example.com`)"
      - "traefik.http.routers.wordpress.entrypoints=web"
      - "traefik.http.routers.wordpress.middlewares=secured"
      - "traefik.http.middlewares.secured.chain.middlewares=xss,ipallow,flood"
      - "traefik.http.services.wordpress.loadbalancer.server.port=80"
      - "traefik.http.middlewares.xss.headers.browserxssfilter=true"
      - "traefik.http.middlewares.xss.headers.contenttypenosniff=true"
      - "traefik.http.middlewares.xss.headers.customframeoptionsvalue=SAMEORIGIN"
      - "traefik.http.middlewares.xss.headers.referrerpolicy=same-origin"
      - "traefik.http.middlewares.xss.headers.contentsecuritypolicy=frame-ancestors http://web5.srv1.de"
      - "traefik.http.middlewares.flood.inflightreq.amount=10"
      - "traefik.http.middlewares.ipallow.ipwhitelist.sourcerange=192.168.1.7,127.0.0.1/32"

    volumes:
      - wordpress:/var/www/html

volumes:
  wordpress:

Agar beberapa middleware dapat diterapkan pada satu router, tambahkan label traefik.http.middlewares.<name>.chain.middlewares lalu diisi dengan nama dari masing middleware yang dibuat

traefik.http.middlewares.secured.chain.middlewares=xss,ipallow,flood

Terakhir tambahkan label traefik.http.routers.<name>.middlewares lalu diisi dengan nama dari middlewares chain.

traefik.http.routers.wordpress.middlewares=secured

Related

Kontrol Jumlah Request di Traefik
·1 min
traefik traefik docker
Menambahkan Security Headers di Traefik
·1 min
traefik traefik docker
Basic Auth dan Digest Auth dengan Traefik
·2 mins
traefik docker traefik
Custom Error Pages on Traefik
·1 min
traefik docker traefik
Load Balance dengan Traefik
·4 mins
traefik docker traefik
Konfigurasi Routing di Traefik
·2 mins
traefik traefik docker