症状

502 Bad Gateway
nginx/1.xx.x

原因と解決方法

バックエンドサービスが起動していない

systemctl status アプリ名
docker ps
systemctl start アプリ名

nginxの設定でポートが間違っている

# 正解
location / {
    proxy_pass http://localhost:3000;
}

Docker環境でのホスト名が間違っている

# 間違い
proxy_pass http://localhost:3000;

# 正解(サービス名を使う)
proxy_pass http://app:3000;

ログで確認する

tail -f /var/log/nginx/error.log

ハマったポイント

  • Docker環境では localhost ではなくサービス名でアクセスする
  • バックエンドが起動していない場合が一番多い

関連記事