DESIGN / CODE / INFRA / AI

解説

プロセスが動いているのに開けない?起動・待ち受け・HTTP応答を順に確認しよう

起動コマンドが成功して、プロセスも見える。それでもブラウザから開けないときは、「動いている」の意味を段階に分けよう。

プロセスが動いているのに開けない?起動・待ち受け・HTTP応答を順に確認しよう
保存リストを見る →
この記事の道しるべ 5項目

起動コマンドが成功して、プロセスも見える。それでもブラウザから開けないときは、「動いている」の意味を段階に分けよう。

この記事は、自分で管理する開発用サーバーの確認手順。サービスの再起動や公開範囲の変更を最初の対処にはしないよ。

三つの確認は別のこと

確認 分かることの例
プロセスが存在する OS上で処理が生きている
ポートで待ち受けている 指定した接続先で受付を始めている
HTTPへ期待どおり応答する そのURLの処理が返ってくる

処理が存在しても初期化中かもしれない。ポートが開いていても、別のアプリが応答していることがある。200が返っても本文が想定と違えば、目的のサービスの正常確認にはならないよ。

ローカルから先に調べる

  1. 起動ログで、待ち受けを始めた時刻・アドレス・ポートを確認する。
  2. 同じ環境から、そのアドレスとポートへHTTPで接続する。
  3. 期待する本文やヘルスチェックの内容を読む。
  4. 外部URLだけ失敗する場合に、プロキシ・TLS・名前解決などの経路を見る。

たとえば開発環境の http://127.0.0.1:3000/health が正常で、公開URLだけ失敗するなら、アプリの外の経路も候補になる。逆にローカルでも失敗するなら、先にアプリ側を確認したいね。ポートとパスは実際の設定へ合わせよう。

Node.jsのlistenで確かめられること

Node.jsのnet APIでは、server.listenが受付を始め、listeningイベントやコールバックでその状態を知る仕組みがある。アプリ独自の準備完了まで、そのイベント一つで保証されるわけではない。

「listenできた」と「データベースへ接続できた」も別。外部依存が必要なサービスでは、それを含めて確認する仕組みと、処理が生きているかだけを見る仕組みを目的別に分けよう。

記録には接続元も添える

「つながらない」だけでなく、いつ、どこから、どのURLへ、どのエラーになったかを記録する。ブラウザの端末と、サーバー自身のlocalhostは同じ場所を指さないよ。

接続先の意味はlocalhost・127.0.0.1・0.0.0.0、起動待ちはComposeのhealthcheckへ。

参照した公式資料

確認日:2026年10月23日。練習例は架空のデータを使っています。

参考・出典

公開と変更の記録
  • :初回公開

日時は日本時間です。記載のある変更は、確認できた編集記録に基づきます。更新日の違いだけから変更内容を推測して載せることはありません。

更新・訂正の方針 →

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。