Domein doorschakelen met Traefik Proxy

Een voorbeeld van domain forwarding in Traefik. Wat complexer in vergelijking met Caddy, maar handig wanneer je Traefik al gebruikt.

Domein doorschakelen met Traefik Proxy

Deze website is verhuisd van "blog.yaats-advies.nl" naar "blog.yaats.nl". Toen ik startte met Yaats was "yaats.nl" niet beschikbaar, maar inmiddels heb ik deze al geruime tijd in bezit.

Omdat deze blog sowieso groot onderhoud nodig had (een migratie van Ghost 3.42 naar 5.65), besloot ik om tegelijk ook de nieuwe domeinnaam in gebruik te nemen. Om niet onvindbaar te worden is het belangrijk dat het oude adres automatisch doorgeschakeld wordt naar het nieuwe adres.

Voor automatische "domain forwarding" bestaan allerlei oplossingen, zoals gebruik maken van container met Nginx of Caddy (eventueel gehost achter Traefik Proxy). Voordeel van een oplossing met Nginx of Caddy is de leesbaarheid van de configuratie. Vergelijk bijvoorbeeld de onderstaande configuratie van Caddy met die van Traefik wat verder naar onderen.

blog.yaats-advies.nl {
	redir https://blog.yaats.nl{uri} permanent
}
Caddy configuratie voor een permanente redirect
Caddy 2 - The Ultimate Server with Automatic HTTPS
Caddy is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go

In vergelijking met Caddy is de syntax van Traefik een stuk minder leesbaar en daarom ook niet zo aantrekkelijk om even snel een "domain forwarding" in te stellen.

# Redirect with domain replacement
# Note: all dollar signs need to be doubled for escaping.
- "traefik.http.middlewares.to-yaats.redirectregex.regex=^https://blog.yaats-advies.nl/(.*)"
- "traefik.http.middlewares.to-yaats.redirectregex.replacement=https://blog.yaats.nl/$${1}"
- "traefik.http.middlewares.to-yaats.redirectregex.permanent=true"

- "traefik.http.routers.yaatsadviesblog.rule=Host(`blog.yaats-advies.nl`)"
- "traefik.http.routers.yaatsadviesblog.entrypoints=websecure"
- "traefik.http.routers.yaatsadviesblog.tls=true"
- "traefik.http.routers.yaatsadviesblog.tls.certresolver=letsencrypt"
- "traefik.http.routers.yaatsadviesblog.middlewares=to-yaats"
Traefik Proxy configuratiefragment voor docker-compose met een permanente domeindoorschakeling

Toch is de configuratie van het doorsturen in Traefik Proxy nader bezien niet zo complex. Het vraagt uiteindelijk slechts vier goed gedocumenteerde configuratieregels, naast de vier die nodig zijn om het domein zelf in te stellen. Meer dan de twee regels die nodig zijn in Caddy.

Omdat de ghostblog reeds draait achter Traefik Proxy, heeft configuratie in Traefik zelf als voordelen, dat er geen extra service nodig is en dat de configuratie voor het oude en die voor het nieuwe domein nu mooi bij elkaar staan.

In andere gevallen gebruik ik met veel plezier Caddy als oplossing voor "domain forwarding". In dit geval blijkt de domeindoorschakeling in Traefik zelf de meest elegante oplossing.

Traefik, The Cloud Native Application Proxy | Traefik Labs
Traefik is the leading open-source reverse proxy and load balancer for HTTP and TCP-based applications that is easy, dynamic and full-featured.