第05章:Windowsでローカルドメインを扱う基本🪟📝
この章は「リバースプロキシで複数アプリ共存」をやる前の“地ならし”だよ〜😊✨ やることはシンプルで、**「この名前(例:api.localhost)=このIP(例:127.0.0.1)」**をWindowsに教えてあげるだけ!🌱
🎯 この章のゴール
- 「front.localhost」「api.localhost」みたいな人間にやさしいURLで開発できるようになる🧠💕
- “名前解決(name resolution)”の超基本(=PCがURLをIPに変換する仕組み)をつかむ🔍
- hosts編集で起こる「あるある事故」を踏まずに進める😇💥
1) まずは“名前解決”のイメージを掴もう🧩
ざっくり言うと、ブラウザやcurlはこう動くよ👇
api.localhost にアクセス
↓(名前解決)
127.0.0.1(自分のPC)に行けばいいんだな!
↓(接続)
ローカルの入口(リバースプロキシ)へ到達
そしてWindowsは、ホスト名をIPに解決するときに決まった順番で探すんだけど、重要なのはここ👇
- hostsファイルを見る
- それで見つからなければ DNS(ネット側)に聞く
この“順番”のおかげで、hostsに書いたら(だいたい)最優先で勝つと思ってOK!🏆 ※より正確には、Windowsのホスト名解決は「自分自身か確認 → hosts → DNS → (だめなら)NetBIOS系」という流れで説明されてるよ。(マイクロソフトサポート)
2) hostsファイルって何?🍞🧠
hostsは、Windowsが読む「手動の住所録」みたいなテキストファイル📒✨ 1行がこういう形👇(左がIP、右が名前)
127.0.0.1 api.localhost
Microsoftの説明でも、hostsは「ホスト名をIPに対応付けるためのファイル」で、1行ずつ「IP + ホスト名」を書く形式だよって書かれてるよ。(マイクロソフトサポート)
3) Windowsでhostsはどこにあるの?📍
場所はここ👇
- 「C:\Windows\System32\Drivers\Etc\hosts」
Windowsのホスト名解決の説明でも、hostsの場所として「%Systemroot%\System32\Drivers\Etc」が示されてるよ。(マイクロソフトサポート)
4) hosts編集:安全で失敗しにくい手順🛠️✨
Windowsはここがシビアで、普通に編集しようとすると保存でコケることが多いよ😂 なので、失敗しにくい“王道ルート”でいこう!
手順A:デスクトップで編集 → 戻す(おすすめ)🧁
- エクスプローラーで「C:\Windows\System32\Drivers\Etc」を開く
- 「hosts」をデスクトップにコピーする📄➡️🖥️
- デスクトップのhostsをVS Codeで編集する✍️
- 編集したhostsを「Etc」フォルダに上書きコピーする(管理者許可が出るのでOK)🛡️
この「いったんデスクトップで作って、あとでEtcに戻す」流れは、Microsoftの“hostsを既定に戻す手順”でも同じノリで案内されてる(作って→移して→管理者許可)ので、事故りにくいよ。(マイクロソフトサポート)
手順B:VS Codeを管理者で起動して直接編集(慣れたら)🚀
- スタートメニューでVS Codeを右クリック
- 「管理者として実行」
- その状態でhostsを開いて編集・保存
5) 何を書けばいいの?(最小セット)✍️🌱
✅ まずは3つだけ追加しよう
例:これからの章で使いやすい命名でいくよ〜🎯
127.0.0.1 front.localhost
127.0.0.1 api.localhost
127.0.0.1 admin.localhost
🧠 できればIPv6(::1)も一緒に足す
最近の環境だと、アプリやブラウザがIPv6を優先することがあって、**127.0.0.1だけだと「あれ?つながらん」**が起きがち🥲 なので、同じ名前に対して::1も書くのが安全✨
127.0.0.1 front.localhost
::1 front.localhost
127.0.0.1 api.localhost
::1 api.localhost
127.0.0.1 admin.localhost
::1 admin.localhost
6) 反映されたか確認しよう🔍✅
① DNSキャッシュを流す(効かない時の必殺技)🧹
編集後、すぐ反映されないことがあるので、一回これ👇
ipconfig /flushdns
② 疎通チェック(3段階)🧪
(1) ping で名前→IPになってるか
ping api.localhost
(2) nslookup で名前解決の結果を見る
nslookup api.localhost
(3) ブラウザで開く(あとでリバプロ入れる前提)
- いまはまだサーバーを立ててないなら「開けない」でもOK🙆
- 大事なのは「名前が変な外のIPに飛んでない」こと!
7) やりがちミスあるある集😇💣(ここ超大事)
❌ ミス1:hosts.txt にしちゃう
- 拡張子が付くと、Windowsはhostsとして読まないよ〜😭
- ちゃんとファイル名が hosts(拡張子なし)になってるか確認!
❌ ミス2:保存できたつもりで保存できてない
- 管理者権限がなくて、保存が失敗してるパターン多い😂
- だから「デスクトップで編集→上書き」の手順Aが強い💪
❌ ミス3:書いたのに反映されない
- DNSキャッシュが残ってることがある
- まず「ipconfig /flushdns」→それでもダメならブラウザ再起動🔁
❌ ミス4:スペースやタブがぐちゃぐちゃ
- 1つ以上の空白で区切れてればOKだけど、見やすさ大事✨
- こういう形が安定👇(IP→空白→名前)
❌ ミス5:hostsに書いたせいで「本物のサイト」が開けなくなる
hostsは“強い”ので、例えば「example.com」を127.0.0.1に向けたら、当然そのサイトは開けなくなる😇 つまり、プロジェクト用の名前だけに絞ろうが正義🛡️
8) ちょい先取り:.localhostが強い理由🏠🔥
次章で詳しくやるけど、**“.localhost配下はループバックに解決される想定”**として仕様で扱われてるよ(localhost系は特別扱いされる)。IETFのRFC 6761でも「.localhost配下は常にループバックへ解決される前提でよい」系の書き方がある。([IETF Datatracker][3])
なので、今後は「front.localhost / api.localhost」をメインに育てると気持ちいいよ〜😊✨
9) AIに聞くと爆速になる質問例🤖⚡
(コピペして使ってOK!)
- 「Windowsのhostsを編集した。api.localhostが127.0.0.1に解決されてるか確認する最短コマンドを3つ教えて」
- 「front.localhostが開けない。原因切り分けを“名前解決→ポート→コンテナ→アプリ”の順でチェックリスト化して」
- 「hostsにIPv4とIPv6どっちも書くべき? ありがちなハマりも含めて理由をやさしく説明して」
10) ミニ課題🎓✨(手を動かすと一気に定着する!)
課題1:3つの名前を生やす🌱
- hostsに「front/api/admin」を追加
- flushdns
- ping と nslookup で結果を確認✅
課題2:わざと1個だけ壊す😈
- api.localhost を「127.0.0.2」にしてみる(※存在しない想定のIP)
- どういうエラーになるか観察👀
- 戻す(ここ大事)🔙
課題3:後片付け🧹✨
- 追加した行の先頭に「#」を付けてコメントアウトしてみる
- 反映が消えるか確認(flushdnsも)✅
- “安全に戻せる”経験があると、次章以降めちゃ安心😌
✅ この章のまとめ(次に繋がる!)🚪➡️🏠
- hostsは「名前→IP」を固定する“手動住所録”📒
- Windowsはhostsを見てからDNSに行くので、ローカル開発に便利✨ (マイクロソフトサポート)
- まずは「front/api/admin.localhost」を生やせれば勝ち🎉
- 次章で「.localhostの強さ」を理解すると、さらに快適になるよ〜🏠🔥 ([IETF Datatracker][3])
次(第6章)に進むと、“hostsいじり地獄”から解放される方向に入っていくよ😆💪
[3]: https://datatracker.ietf.org/doc/html/rfc6761 "
RFC 6761 - Special-Use Domain Names
"