【Nuxt × Spring Boot】504エラーの原因はAPI遅延じゃない|実はポート競合だった

2026年4月11日

背景

Nuxt から API を叩いた際に、504エラーが発生しました。

環境

  • Nuxt(localhost:3000)
  • Spring Boot(localhost:8080)
  • Windows(PowerShell)

症状

  • フロントで 504 Gateway Timeout
  • Nuxt コンソールに以下のエラー
ECONNREFUSED

原因

ポート8080が別プロセスに使用されており、Spring Bootが起動できていなかった

確認方法

curl http://localhost:8080

⇒ 接続できなければ、APIは起動していない可能性が高い

解決手順

① ポート使用状況を確認

netstat -ano | findstr :8080

⇒ 結果例

TCP    0.0.0.0:8080    0.0.0.0:0    LISTENING    12345

この場合、一番右の 12345 が PID

② プロセスを特定

tasklist | findstr <PID>

⇒ 結果例

java.exe                     12345 Console                    1    333,333 K

③ プロセス停止

taskkill /PID <PID> /F

④ Spring Boot 再起動

まとめ

  • 504エラーでも「遅い」とは限らない
  • ポート競合でAPIが起動していないケースがある

もう一歩踏み込むと

今回のようなケースでは、

  • 接続エラーの種類
  • 切り分けの順序
  • どこから疑うべきか

で、調査時間が大きく変わります。

同じようなエラーでも原因は全く違うことが多いです。

さらに詳しく知りたい方へ

より詳しい判断軸や、再現性のある切り分け方法は

noteでまとめています。

  • なぜこの順序で切り分けるのか
  • 「タイムアウト」と「接続失敗」の見分け方
  • 毎回迷わなくなる判断アルゴリズム

↓ 同じところで毎回迷いたくない人向けにまとめました。

この記事はこんな人向け 504エラーは「処理が遅い」と思い込んでいる人 API連携(Nuxt / Spring Boot など)で詰まっている人 同じようなトラ…
note.com