2 votes

Est-ce que Traefik peut maintenir un préfixe de chemin si un backend redirige une requête, lors du routage vers ce backend avec PathPrefixStrip?

Je tente d'utiliser Traefik comme proxy pour envoyer du trafic vers les environnements de révision de Gitlab. Gitlab CI peut démarrer des conteneurs docker pour exécuter une version de révision d'un projet. Je peux faire en sorte que Traefik détecte ces conteneurs et route le trafic vers eux avec ce genre de configuration dans mon fichier docker-compose:

      - traefik.gitlab.frontend.rule=Host:gitlab.example.local;PathPrefixStrip:/review/$CI_BUILD_REF_NAME.$CI_PROJECT_NAME.$CI_PROJECT_NAMESPACE
      - traefik.gitlab.port=80

Avec cela, je peux ouvrir "https://gitlab.example.local/review/master.project.user/ping", et obtenir ma page PONG. Mais si je vais à "https://gitlab.example.local/review/master.project.user/", l'application de test simple que j'utilise renverra une redirection 303 vers /ping qui se retrouve comme "https://gitlab.example.local/ping", et n'est pas proxifié vers l'application de révision.

> GET /review/master.10112.root HTTP/2
> Host: gitlab.example.local
> User-Agent: curl/7.54.0
> Accept: */*
>
* La connexion a changé d'état (MAX_CONCURRENT_STREAMS mis à jour)!
< HTTP/2 303
< content-type: text/html; charset=utf-8
< date: Mon, 25 Feb 2019 08:25:44 GMT
< location: /ping
< content-length: 32
<
Voir Autre.

La documentation mentionne un en-tête "X-Forwarded-Prefix" étant défini. Je ne suis pas sûr si c'est effectivement configuré. Je ne vois pas cela dans un curl -V. Est-ce que je dois avoir une application qui détecte cet en-tête et le préfixe en tant que "chemin de base" pour ses réponses? Y a-t-il un moyen de configurer Traefik pour ajouter cela au chemin renvoyé?

Y a-t-il d'autres proxys plus configurables conscients de Docker que je pourrais utiliser pour router le trafic vers des environnements de révision de gitlab adressés de manière dynamique?

0voto

Esteban Yanson Points 1

Vous pouvez indiquer à GitLab où il est hébergé afin qu'il envoie les bonnes redirections et liens

docker run -e GITLAB_OMNIBUS_CONFIG="external_url 'https://gitlab.example.local/review/master.project.user/ping'" ... gitlab/gitlab-ce:latest

https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-a-relative-url-for-gitlab

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X