Docker

Set up Default Backend pada Traefik Docker

Traefik merupakan tools yang didesain untuk menjadi reverse proxy. Kita dapat mengeset berbagai macam domain pada traefik, dan kemudian mengarahkan domain tersebut ke backend yang kita inginkan. Salah satu kelebihan dari traefik ini adalah dia dapat melakukan request SSL letsencrypt secara otomatis sesuai dengan domain yang sudah kita set ke traefik tersebut. Namun kali ini kita tidak akan membahas hal tersebut.

Pada saat kita memasang sebuah reverse proxy, ada saatnya kita memerlukan routing untuk default server, dimana ketika ada domain random yang mengarah ke reverse proxy ini, maka request akan diarahkan ke suatu backend tertentu, misal custom page untuk response 404, 500, atau response response yang lain. Sampai artikel ini ditulis, penulis tidak menemukan dokumentasi eksplisit mengenai default server tersebut di website dokumentasi official traefik.

Setelah melakukan googling lumayan lama, penulis menemukan laman berbahasa inggris terkait permasalahan default server ini. Yang perlu dilakukan saat kita menggunakan fitur default server traefik pada docker adalah menambahkanberikut pada blok service di docker compose.

service:
  nama-service:
    labels:
      - "traefik.frontend.rule=HostRegexp:{catchall:.*}"
      - "traefik.frontend.priority=1"

Label traefik tersebut menggunakan fitur bernama regex (referensi dan simulasi beberapa format regex bisa dipelajari di sini ). Label frontend rule tersebut menggunakan regex {catchall:.*} dengan format {name:<regex>}. Kita dapat mengganti catchall dengan nama lain. Regex tersebut akan “menangkap” semua domain/subdomain yang tidak match dengan domain/subdomain yang kita tentukan secara eksplisit pada traefik. Selain itu,priority juga berperan penting. Priority 1 berarti rule ini memiliki prioritas yang paling rendah. Traefik hanya akan match dengan rule ini ketika suatu domain sudah tidak match dengan semua rule lain. Perilaku seperti ini akan serupa dengan settingan server name default pada nginx dan apache.

Jika anda menemukan bahwa postingan ini bermanfaat bagi anda, ataupun jika memiliki pertanyaan lebih lanjut, silahkan tuliskan di kolom komentar 😀

Akhmad Fakhoni Listiyan Dede

Share
Published by
Akhmad Fakhoni Listiyan Dede

Recent Posts

Mengimplementasikan AI untuk Melakukan Review pada Pull Request Github

Halo semua Github memiliki fitur terkait Pull Request yang cukup luar biasa, yaitu dapat melakukan…

7 months ago

Install kubernetes cluster using kubeadm

Hello everyone! 👋 Welcome to our step-by-step guide on using kubeadm to install Kubernetes. It's…

1 year ago

Meningkatkan Efisiensi Memory Proxmox Lebih dari 20%

Proxmox adalah hypervisor yang populer digunakan karena penggunaannya yang cukup simpel jika dibandingkan dengan hypervisor…

4 years ago

Longhorn Failed Upgrade from v0.8.1 to v1.0.0 caused by pv created before v0.6.2

This post is mirror of https://forums.rancher.com/t/failed-upgrade-from-v0-8-1-to-v1-0-0-caused-by-pv-created-before-v0-6-2/17586 I scale down all pods that has vpc to…

5 years ago

Cara Setup Network Ubuntu Server 18.04 pada Proxmox

Ubuntu Konfigurasi network pada Ubuntu Server 18.04 berbeda dengan ubuntu versi sebelumnya. Versi sebelumnya menggunakan…

5 years ago

VSCode Terminal Font Fix on MacOS

For detailed problems, see https://notulensiku.com/2019/02/fix-integrated-terminal-font-vscode/ To solve on mac, you need to install powerline fonts…

5 years ago