a20783287c
The function `HostHost` is an obvious typo, such a function does not exist, most likely just `Hosts` is meant here. Furthermore, Trafik 3 doesn't use the Gorilla Mux framework anymore, therefore the matching using curly brace syntax like in `{subhost:[a-z]+}` isn't supported anymore. For details, see [1]. Alas, the final Traffic 2 to 3 migration document dropped this crucial information but at least all of those many examples using this method which were in the Trafik 2 documentation were removed from the Traefik 3 documentation. Also `[a-z]+` does not match all valid sub-domains as specified per RFC 1123 [2], and needs to be enhanced to support hyphen characters within a single DNS label as well (but not at the start or the end of a label). This is also a requirement for i18n domains in their ACE representation. Actually the regular expression can be made even more strict to comply with length limitations as defined in RFC 2181 [3] but this would require pretty resource-intense lookarounds in the regular expression, therefore those should be neglected here. As we are doing regular expression match anyway, the `Host` function can be dropped. It adds redundancy to the configuration and only would make sense from a performance point of view, if the vast majority of requests would lack any sub-domain. Last but not least, the Trafik documentation isn't clear at all, whether any potential port number is being stripped from the `Host` request header. From empiric testing with Traefik 3.0.1 that's apparently the case, but as it isn't a documented feature, we rather accept potential ports as well. Same when it comes to case-sensitivity. From testing it looks like the hostname is always forced to lower-case chararcters, but strangely enough even the official documentation contains an example which suggests enabling case-insensitive mode for regular expression matching using `(?i)`. Therefore we better stick with that one as well. [1] https://traefik.io/blog/traefik-proxy-3-0-scope-beta-program-and-the-first-feature-drop/ [2] https://datatracker.ietf.org/doc/html/rfc1123 [3] https://datatracker.ietf.org/doc/html/rfc2181 |
||
---|---|---|
.github | ||
ansible | ||
docker-compose | ||
github-actions | ||
kestra | ||
kubernetes | ||
packer/proxmox | ||
terraform | ||
vagrant | ||
.gitignore | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
renovate.json | ||
SECURITY.md |
Christian's Boilerplates
Hey, there!
I’m Christian, and I’m passionate about creating educational tech content for IT Pros and Homelab nerds.
This Repository Boilerplates is my personal template collection. Here you'll find templates, and configurations for various tools, and technologies.
⚠️ Be aware, products can change over time. I do my best to keep up with the latest changes and releases, but please understand that this won’t always be the case.
I created them as free resources to be used in your specific use cases. If you're searching for detailed, in-depth tutorials on some tools or technologies, check out my YouTube Channel.
Contribution
If you’d like to contribute to this project, reach out to me on social media or Discord, or create a pull request for the necessary changes.
Other Resources
- Dotfiles - My personal configuration files on macOS
- Cheat-Sheets - Command Reference for various tools and technologies
- Videos - Documentation and project files for all my video tutorials on YouTube
- Homelab - This is my entire Homelab documentation, and configurations for infrastructure, applications, networking, and more.
Support me
Creating high-quality videos and valuable resources that are accessible to everyone, free of charge, is a huge challenge. With your contribution, I can dedicate more time and effort into the creation process, which ultimately enhances the quality of the content. So, all your support, by becoming a member, truly makes a significant impact on what I do. And you’ll also get some cool benefits and perks in return, as a recognition of your support.
Remember, supporting me is entirely optional. Your choice to become a member or not won't change your access to my videos and resources. You are also welcome to reach out to me on Discord, if you have any questions or feedback.