You may have heard about this Golang-written routing software. I started to use it a few months ago as a Kubernetes ingress controller and I will present here my return on experience.

Installation

The first time I installed it, everything seemed to be fine until I tried to configure TLS endpoint.

This was not working, and while investigating I saw a message in the logs saying I was not using the latest version. (I thought it is really convenient to have the application itseff warning you it you should upgrade.)

I thought before continuing troubleshooting I will first upgrade.

While doing it I also changed my installation method. At the end I had a perfectly working Traefik installation.

I would say this is an easy step when using the right procedure.

Middlewares

Traefik provides the ability to define pieces of logic to apply on incoming requests before they reach backend services, through usage of middlewares.

A common use case when exposing services onto the web is redirecting http requests to https. I could do it easily with Traefik's middleware system using a predefined scheme. All I had to do was creating a middleware using this scheme and referencing it in my router.

The configuration is easy to write. Though I ended up puzzled because sometimes it seemed to be working and some other time not.

When I came back later on this point I understood what the problem was. It was not a bug in Traefik but a misconfiguration from my side. After that I fixed it and it works perfectly fine. One thing to mention is that the code returned by Traefik for permanent redirections is 308. I personnally do not make a difference between 301 and 308 as long as the browser successfully redirects.

Another situation in which I found middlewares very helpful is for a website that is composed of two different services. One for the application with business logic inside and another for assets (Javascript files, CSS files and images). My solution for this was to expose assets behind a prefix which is stripped before requests reach the assets service.

The dashboard

I was happy to unfold this nice feature provided out of the box.

Here is an overview of it.

I appreciated to have errors displayed so that I could fix the configuration. Though not all of them appear here, I saw more in the logs. So when troubleshooting, only this dasboard may fall short.

I personnally like the ability to switch to dark colors.

One point on which I was disappointed though is the lack of visit statistics.

Conclusion

Besides some configuration issues I had a smooth and satisfying experience using this software.

I liked the living and helpful community forum.

Beyond this first surface scratching experience I know there is a rich bunch of other features I did not explore yet.

If you are looking for a good reverse proxy for your on-premise datacenter for example, or simply curious, I definetly recommend trying Traefik out !