J'ai un problème étrange. J'ai la configuration suivante: un docker-Host exécutant traefik en tant que LB desservant plusieurs sites. les sites sont les plus php/Apache. HTTPS est géré par traefik. Chaque site est démarré à l'aide d'un docker-compose YAML contenant les éléments suivants:
version: '2.3'
services:
redis:
image: redis:Alpine
container_name: ${PROJECT}-redis
networks:
- internal
php:
image: registry.gitlab.com/OUR_NAMESPACE/docker/php:${PHP_IMAGE_TAG}
environment:
- Apache_DOCUMENT_ROOT=${Apache_DOCUMENT_ROOT}
container_name: ${PROJECT}-php-fpm
volumes:
- ${PROJECT_PATH}:/var/www/html:cached
- .docker/php/php-ini-overrides.ini:/usr/local/etc/php/conf.d/99-overrides.ini
ports:
- 80
networks:
- proxy
- internal
labels:
- traefik.enable=true
- traefik.port=80
- traefik.frontend.headers.SSLRedirect=false
- traefik.frontend.rule=Host:${PROJECT}
- "traefik.docker.network=proxy"
networks:
proxy:
external:
name: proxy
internal:
(comme PHP nous utilisons 5.6.33-Apache-jessie ou 7.1.12-Apache f.e.)
En plus de ce qui précède, certains sites reçoivent les étiquettes suivantes:
traefik.docker.network=proxy
traefik.enable=true
traefik.frontend.headers.SSLRedirect=true
traefik.frontend.rule=Host:example.com, www.example.com
traefik.port=80
traefik.protocol=http
ce que nous obtenons est que certaines requêtes se terminent par une sortie de débogage 502 Bad Gateway traefik montre:
time="2018-03-21T12:20:21Z" level=debug msg="vulcand/oxy/forward/http: Round trip: http://172.18.0.8:80, code: 502, Length: 11, duration: 2.516057159s"
quelqu'un peut-il aider avec ça? c'est complètement aléatoire quand ça arrive notre traefik.toml:
debug = true
checkNewVersion = true
logLevel = "DEBUG"
defaultEntryPoints = ["https", "http"]
[accessLog]
[web]
address = ":8080"
[web.auth.digest]
users = ["admin:traefik:some-encoded-pass"]
[entryPoints]
[entryPoints.http]
address = ":80"
# [entryPoints.http.redirect] # had to disable this because HTTPS must be enable manually (not my decission)
# entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[retry]
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "example.com"
watch = true
exposedbydefault = false
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
[acme.httpChallenge]
entryPoint = "http"
Le problème peut-il être lié à l'utilisation du même docker-compose.yml?
Si tu vois Bad Gateway
avec Traefik, vous avez probablement un problème de mise en réseau Docker. Regardez d'abord ce problème et considérez cette solution . Jetez un œil à providers.docker.network
(Traefik 2.0) ou, dans votre cas, le docker.network
paramètre (Traefik 1.7).
Vous pouvez ajouter un network
par défaut ici:
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "example.com"
watch = true
exposedbydefault = false
network = "proxy"
Ou définissez/remplacez-le pour un service donné en utilisant le traefik.docker.network
label.