解説
プロセスが動いているのに開けない?起動・待ち受け・HTTP応答を順に確認しよう
起動コマンドが成功して、プロセスも見える。それでもブラウザから開けないときは、「動いている」の意味を段階に分けよう。

起動コマンドが成功して、プロセスも見える。それでもブラウザから開けないときは、「動いている」の意味を段階に分けよう。
この記事は、自分で管理する開発用サーバーの確認手順。サービスの再起動や公開範囲の変更を最初の対処にはしないよ。
三つの確認は別のこと
| 確認 | 分かることの例 |
|---|---|
| プロセスが存在する | OS上で処理が生きている |
| ポートで待ち受けている | 指定した接続先で受付を始めている |
| HTTPへ期待どおり応答する | そのURLの処理が返ってくる |
処理が存在しても初期化中かもしれない。ポートが開いていても、別のアプリが応答していることがある。200が返っても本文が想定と違えば、目的のサービスの正常確認にはならないよ。
ローカルから先に調べる
- 起動ログで、待ち受けを始めた時刻・アドレス・ポートを確認する。
- 同じ環境から、そのアドレスとポートへHTTPで接続する。
- 期待する本文やヘルスチェックの内容を読む。
- 外部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
感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。
最初のコメントをどうぞ。