「お、俺いまサーバー動かしてるやん」Nginxインストール直後にブラウザで画面が見える仕組み
「黒い画面(ターミナル)にコマンドを打ち込んで、ブラウザを開いたら『Welcome to nginx!』が出た!」
インフラやサーバー構築に初めて触れるときのこの瞬間は何度味わっても良いものです。「あ、自分いまサーバー動かしてるわ」とテンションが上がりましたよね。
でも、ここで「動いたからヨシ!」で終わらせるのはもったいないです。
本記事では、「なぜたった数行のコマンドを叩いただけで、ブラウザからサイトが確認できるのか?」という裏側の仕組みを復習がてら書いていこうかなと思います。
おさらい:実行した3つのステップ
おそらく、あなたが実行した手順は次のようなものだったはずです。
# ① Nginxをインストール
sudo apt update
sudo apt install -y nginx
# ② Nginxの起動と状態確認
sudo systemctl start nginx
sudo systemctl status nginx
# -> "active (running)" と表示される
# ③ ブラウザからアクセス
# http://localhost または http://サーバーのIPアドレス
これだけで、ブラウザには「Welcome to nginx!」というページが表示されます。魔法のようですが、これにはきちんとした理由があります。
ここから、**「ブラウザでURLを叩いてから、画面が表示されるまでの間に何が起きていたのか」**を3つのポイントに分けて解説します。
仕組み1:「見えないところでずっと待機する」Nginxの働き
sudo systemctl start nginx というコマンドを叩いたとき、Linux(Ubuntu)の中では「Nginx」というプログラムがバックグラウンドで起動しました。
このように、裏側で常に動き続けるプログラムのことを**「デーモン(Daemon)」**と呼びます。(Windowsでいう「サービス」のようなものです)
Nginxは起動すると、「誰かアクセスしてこないかな?」と、システムの中でずっと耳を澄まして待機する状態になります。これが active (running) の正体です。
仕組み2:「ポート80番」という専用の受付窓口
では、Nginxはどこで待機しているのでしょうか?
サーバーには、データのやり取りをするための「ポート(Port)」という無数のドア(番号は0〜65535まで)が用意されています。
あなたがブラウザに入力した http:// という文字列。これは「HTTPという通信ルールを使いますよ」という合図であり、HTTPは自動的に**「80番ポートのドアを叩く」**という決まりになっています。
Nginxは賢いので、起動した瞬間からこの「80番ポート」という受付窓口の前に立ち、HTTPリクエストが来るのを専属で待ち構えているのです。
※ちなみに https://(暗号化通信)の場合は、443番ポートが使われます。
仕組み3:ブラウザの「おねがい」とNginxの「はいどうぞ」
実際に http://localhost (またはIPアドレス)にアクセスした瞬間のやり取りを擬人化してみましょう。
-
ブラウザ(あなた):
「すみませーん!サーバーさんの80番ポートさん、トップページ(HTML)の内容を見せてください!」(リクエストを送る) -
Nginx(サーバー):
「いらっしゃいませ! 80番ポートは私が担当のNginxです。トップページですね、少々お待ちを……」 -
Nginx(サーバー):
(サーバー内の/var/www/html/index.nginx-debian.htmlなどのファイルをパッと読み込んで)
「準備できました! こちらがデータです!」(レスポンスを返す) -
ブラウザ(あなた):
(もらったデータを画面に描画する)
「おぉ、『Welcome to nginx!』って書いてある!」
このように、**「ブラウザが特定のルールでリクエストを送り、待機していたNginxがそれを受け取り、用意されたHTMLファイルを投げ返した」**結果として、あなたがサイトを確認できたわけです。
まとめ:「サーバーが動く」とはどういうことか
私たちが何気なく見ているWebサイトも、基本的にはこれとまったく同じ仕組みで動いています。
- サーバー:24時間365日、指定されたポート(80番や443番など)でリクエストを待つプログラムが動いているコンピュータ。
- Webサーバーソフト(NginxやApache):リクエストを受け取り、適切なファイルをブラウザに返す案内係。
「Welcome to nginx!」の画面が出たということは、あなたのPC(または仮想環境やVPS)が「世界中のどこからでも(ネットワークがつながっていれば)情報を提供できるサーバー」に進化したという証拠なのです。
次は、表示されたHTMLファイル(Ubuntuなら /var/www/html/ 配下にあることが多いです)を書き換えて、自分だけの「Hello World!」を表示させてみてください。サーバー構築の楽しさがさらに倍増するはずですよ!