Traefik adalah reverse proxy dan load balancer yang populer. Selain digunakan bersama Docker, Traefik juga dapat dijalankan secara mandiri (standalone) tanpa bergantung pada container. Caranya cukup sederhana: unduh binary Traefik, buat konfigurasi menggunakan file YAML atau TOML, lalu jalankan sebagai service di server.
Berikut panduan lengkapnya.
Download dan Instalasi Binary #
Jalankan perintah berikut untuk mengunduh binary Traefik dan menempatkannya di /usr/local/bin:
curl -L https://github.com/traefik/traefik/releases/download/v3.0.0/traefik_linux-amd64 -o /usr/local/bin/traefik
chmod +x /usr/local/bin/traefik
traefik versionv3.0.0 dengan versi Traefik terbaru yang tersedia.
Membuat Konfigurasi #
Karena tidak menggunakan Docker, seluruh konfigurasi Traefik perlu ditulis secara manual.
Static Configuration #
Buat file /etc/traefik/traefik.yml:
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
api:
dashboard: true
insecure: true # Hanya untuk pengujian, jangan digunakan di production
providers:
file:
filename: "/etc/traefik/dynamic.yml"
watch: true
certificatesResolvers:
letsencrypt:
acme:
email: "[email protected]"
storage: "/etc/traefik/acme.json"
httpChallenge:
entryPoint: webDynamic Configuration #
Buat file /etc/traefik/dynamic.yml:
http:
routers:
my-app-router:
rule: "Host(`myapp.example.com`)"
entryPoints:
- websecure
service: my-app-service
tls:
certResolver: letsencrypt
services:
my-app-service:
loadBalancer:
servers:
- url: "http://127.0.0.1:8080"Pada contoh di atas, Traefik akan menerima request ke myapp.example.com dan meneruskannya ke aplikasi yang berjalan pada 127.0.0.1:8080.
Menjalankan Traefik sebagai Service Systemd #
Agar Traefik berjalan di background dan otomatis aktif saat server melakukan boot, buat file service berikut:
/etc/systemd/system/traefik.service
[Unit]
Description=Traefik Reverse Proxy
After=network-online.target
[Service]
Type=notify
ExecStart=/usr/local/bin/traefik --configFile=/etc/traefik/traefik.yml
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.targetSetelah itu, lakukan reload konfigurasi systemd dan jalankan service:
systemctl daemon-reload
systemctl enable traefik
systemctl start traefikVerifikasi bahwa service berjalan dengan baik:
systemctl status traefikAkses Dashboard #
Jika konfigurasi API masih menggunakan:
api:
dashboard: true
insecure: truemaka dashboard Traefik dapat diakses melalui:
http://IP-SERVER:8080/dashboard/insecure: true hanya disarankan untuk lingkungan pengujian atau development. Pada lingkungan production, sebaiknya dashboard dipublikasikan melalui router terpisah dan dilindungi dengan autentikasi.