現在、私はいくつかのドッカーコンテナに対して、Traefikを使ってロードバランサ/リバースプロキシを設定しようとしています。私はいくつかのプレフィックスパスを使って自分のアプリケーションを利用できるようにTreafikを設定することに問題があります。 this exampleに基づいて、DockerとDockerを使って基本的なTraefik設定を実行できるようになりました。問題は、パスにアクセスできる 'whoamI'コンテナは取得できますが、アプリや他のコンテナは取得できないということです。Traefikを使ったルーティングパス
たとえば、whoamIコンテナと5つのPortainerコンテナを開始するためのドッキング用の作成ファイル(以下を参照)を作成しました(人々がシナリオを再作成できるように)。私はwoamIが/wai
で利用可能で、Portainerが/portainer1
であると期待しています。
代わりに、whoainIウェブサーバー(/wai
経由)に接続でき、Portainer(/portainer1
経由)には接続できません。しかし、私は/portainer2
にPortainerに到達することができます。この2つの間のTraefik構成の唯一の違いは、 'Path'の代わりに 'PathStrip'を使用することです。しかし、迷惑なことは、/portainer2
にナビゲートすると、私は白いページしか取得できないということです。ページタイトルといくつかのHTMLのみが読み込まれます。私はまた、予想される動作(通常のPortainerページ)を検証するために、ホストマシンに公開されるPortainerコンテナを開始しました。下記の添付イメージも参照してください。
編集:
は興味深いことに、私も同じ白いページが得られ/portainer4/
(ただし/portainer4
)でPortainerに到達することができますよ。 /portainer2/
と/portainer4/
にナビゲートすることの違いは、Traefikでいくつかの追加のログが記録されていることです(下記参照)。 /portainer4/
経由でPortainerに移動すると、ログに3つの余分な行が表示され、400のステータスが示されます。若干の調査の後、私はブラウザが追加のファイル(javascriptファイル、ファビコン、スタイルシートなど)を読み込もうとしていることに気付きました。したがって、Portainerに/portainer4/
という名前でアクセスすると、私のブラウザはそれらの余分なファイルを取得する必要があることを知っており、そうしようとします(/portainer2
にナビゲートすると発生しません)。 /portainer4/ico/favicon.ico
にナビゲートするなどしてファイルに自分自身でアクセスしようとすると、400 Bad Request
と表示されます。最後に、/portainer2/ico/favicon.ico
にナビゲートするときは、404 page not found
を参照してください。
- を私はportainer1 /ではなく /portainer2にPortainerに達することができない理由:私は思ったんだけどこれらの結果に基づいて
?
- /portainer2に移動するときに、[Portainer]ページ全体が表示されないのはなぜですか?
/portainer2/
と/portainer4/
- 400不正な要求が実際に何を意味するのかとIF /この問題が解決することができますどのようにこの問題
間のファイルにアクセスするとの動作の違い(例えばファビコン)があるのはなぜ
![Different Treafik paths](https://i.stack.imgur.com/kK6OG.png)
ドッキングウィンドウ-コン:私は本当に正しい方向に
いくつかのスクリーンショットをいくつかのポインタをいただければ幸いです。YML:
version: '2'
services:
traefik:
container_name: traefik
image: traefik
command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /dev/null:/traefik.toml
labels:
- "traefik.enable=false"
whoami:
image: emilevauge/whoami
labels:
- "traefik.backend=whoami"
- "traefik.frontend.rule=Path: /wai/"
portainer1:
image: portainer/portainer
labels:
- "traefik.backend=portainer1"
- "traefik.frontend.rule=Path: /portainer1/"
portainer2:
image: portainer/portainer
labels:
- "traefik.backend=portainer2"
- "traefik.frontend.rule=PathStrip: /portainer2/"
portainer:
image: portainer/portainer
ports:
- "9000:9000"
labels:
- "traefik.enable=false"
追加Traefikロギングは、それぞれ/wai
、/portainer1/
、<myIP>/portainer2/
、/portainer3/
と/portainer4/
を、訪問した後に生成:
time="2017-01-13T14:33:16Z" level=debug msg="Round trip: http://172.19.0.2:80, code: 200, duration: 1.000627ms"
time="2017-01-13T14:33:22Z" level=debug msg="Round trip: http://172.19.0.7:9000, code: 404, duration: 1.006089ms"
time="2017-01-13T14:33:24Z" level=debug msg="Round trip: http://172.19.0.3:9000, code: 200, duration: 1.160158ms"
time="2017-01-13T14:33:26Z" level=debug msg="Round trip: http://172.20.0.5:9000, code: 404, duration: 1.291309ms"
time="2017-01-13T14:33:29Z" level=debug msg="Round trip: http://172.20.0.4:9000, code: 200, duration: 2.788462ms"
time="2017-01-13T14:33:29Z" level=debug msg="Round trip: http://172.20.0.4:9000, code: 400, duration: 777.073µs"
time="2017-01-13T14:33:30Z" level=debug msg="Round trip: http://172.20.0.4:9000, code: 400, duration: 1.780621ms"
time="2017-01-13T14:33:30Z" level=debug msg="Round trip: http://172.20.0.4:9000, code: 400, duration: 1.780341ms"