久しぶりに投稿するとタイトルに悩む・・・
エラー現象
jwilder/nginx-proxy
を使用してドメインごとにコンテナ振り分けようとしたときに503エラーが出た
結論
先に原因書くと自分でDockerFile
書いているときは、ファイル内にEXPOSE 80
書かないとプロキシに認識されない。
経緯
1. エラー発生
ブラウザから見て503出たのでログを確認したところ、下記になっていた。
no live upstreams while connecting to upstream, client: *.*.*.*, server: domain.com, request: "GET / HTTP/2.0", upstream: "http://domain.com/", host: "domain.com", referrer: "https://domain.com/"
2. 原因調査
幸いにもすでに稼働中のほぼ同じ環境が手元にあったので比較しながら調査。
・確認項目
- アプリ側のコンテナに入って、
curl http://localhost
→ OK -
docker ps
の内容比較 → NG:portsの記載が違う
正しい環境だと80/tcp
があるのに問題環境だと何も記載がない
3. 原因
今回勉強がてら、centos7からhttpdとphpをまとめたDockerFileを作ってたんですがそこにEXPOSE 80
がなかったのでエラーが出ていました。
開発環境だとdocker-compose.yml
にポート指定書いていたんで気づくのが遅れました・・・