サーバとして稼働する場合、
多くはPCのポート番号を専有する形で実現します。
例えばMacOS上でNode.jsを使って3000番でWebサーバを立ち上げた場合、
MacOSの3000番ポートを専有しますので、
Chrome等のブラウザやcurlコマンド、Node.jsのクライアントソフトからhttp://localhost:3000
へHTTPリクエストを飛ばせば結果が帰ってきます。
ここまでは前提の話で、既に理解出来てると思います。
問題はVagrant。
Vagrant自体には仮想マシンを作る機能はありません。
特に指定がなければVirtualBoxという仮想マシンを構築するツールを間借りしています。
仮想マシンを構築する手段は色々とありますが、
VirtualBox流儀の作り方は仮想CPU、仮想メモリ、仮想HDDをMacOS上に作って自作PCを組み立てる感じになります。
その中に仮想ネットワークカードというものも含まれています。
ですのでLinuxマシンを構築して3000番ポートを専有させると
仮想マシンのLinux上で3000番ポートを専有しはじめます。
この時、MacOS上でブラウザを立ち上げてhttp://localhost:3000
を閲覧しても何も帰ってきません。
MacOSでのlocalhost
とはMacOS自身の事であり、その中で作った仮想マシンなんて赤の他人ですから。
virtualbox Webサーバといった感じのワードで検索してみましょう。
一例としては、中のLinuxマシン上でip addr
等のコマンドでIPアドレスを探して、
http://localhsot:3000
をhttp://[IPアドレス]:3000
に置き換えると上手くいくケースがあります。
この辺はVirtualBoxの設定の仕方により変わってきますので
この方法で全て上手くいくというわけではありません。
アレコレ参考サイトを変えながら適した方法を探してみてください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/28 04:41