web-dev-qa-db-ja.com

Traefik Bad Gateway

奇妙な問題があります。私は次の設定をしています:複数のサイトにサービスを提供するLBとしてtraefikを実行する1つのdocker-Host。サイトはほとんどのphp/Apacheです。 HTTPSはtraefikによって管理されています。各サイトは、以下を含むdocker-compose YAMLを使用して開始されます。

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:

(PHPとして5.6.33-Apache-jessieまたは7.1.12-Apache f.eを使用します)

上記に加えて、いくつかのサイトは以下のラベルを取得します:

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

得られるのは、一部のリクエストが502 Bad Gateway traefikデバッグ出力で終わるというものです。

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"

誰かがそれを手伝ってくれる? 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"

問題は同じdocker-compose.ymlの使用に関連していますか?

3
x4k3p

TraefikでBad Gatewayが表示される場合は、Dockerネットワークに問題があります。まず この問題 を見て、 この解決策 を検討します。次に、 providers.docker.network (Traefik 2.0)、または、あなたの場合は docker.network 設定(Traefik 1.7)を見てください。

ここにデフォルトのnetworkを追加できます:

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "example.com"
watch = true
exposedbydefault = false
network = "proxy"

または、traefik.docker.networkラベルを使用して、特定のサービスに対してそれを定義/オーバーライドします。

0
Josh Habdas