そもそもWebサーバーって何?
Webサーバーは、ブラウザから「このページを見せて」とリクエストが来たときに、対応するHTMLファイルや画像を返すソフトウェアです。代表例がApacheとnginx(エンジンエックス)です。どちらも無料で使えるOSSで、Ubuntuならコマンドでインストールできます。最初はシェアや細かな性能差より、「リクエストを受け取り、ファイルを返す」という基本の流れを体験することが大切です。
Webサーバーが動く流れ
Apacheを入れて動かす手順
Ubuntuでの構築は驚くほど簡単です。ターミナルで次の3つを実行するだけで、Webサーバーが起動します。
sudo apt update(パッケージ情報を更新)→ sudo apt install apache2(Apache本体を入れる)→ ブラウザでhttp://localhostにアクセス。「Apache2 Default Page」というページが表示されたら成功です。
自分のページに差し替えるには、/var/www/html/index.htmlを編集します。sudo nano /var/www/html/index.htmlでエディタを開き、HTMLを書き換えて保存。ブラウザを更新すれば即座に反映されます。
localhost は「自分自身のパソコン」を指す特別な名前です。つまり、この段階では世界に公開しているわけではなく、自分のPCの中でWebサーバーが動いているだけです。まずローカルで安全に試し、仕組みを理解してからクラウドやVPSで公開する順番が安全です。
nginxとの違い
nginxはApacheに比べて、同時アクセスが多いときの処理が速いと言われています。設定ファイルの書き方が違うだけで、できることはほぼ同じ。最近のクラウドサービスではnginxが使われることが増えています。最初はApacheで始めて、慣れてきたらnginxにも触れてみるのが定番ルートです。
実務では、Webサーバー単体ではなく、PHPやNode.js、データベース、SSL証明書、ファイアウォールと組み合わせて使います。Apacheやnginxは入口係で、裏側のアプリへリクエストを渡す役割もあります。最初の学習ではHTMLを表示できれば十分ですが、その先にはログ確認、エラー調査、HTTPS化、アクセス制限といった運用の学びが続きます。
Webサーバーで広がること
気をつけたい落とし穴
- 家のPCを直接インターネットに公開するのは推奨しません。クラウドの無料枠やレンタルサーバーから始めましょう
- 個人情報やパスワードを書いたファイルを
/var/www/html/に置かない。誰でも見れる場所です - HTTPS化(SSL証明書)は必須。Let's Encryptを使えば無料で設定できます
将来どう役立つ?
Webサーバーの構築・運用経験は、Webエンジニアやインフラエンジニアの基礎です。Apacheやnginxを触ったことがあると、Webサイトがどこで動き、ブラウザにどう届くのかを具体的に説明できます。中高生で「自分のサイトをLinuxサーバーで表示した経験があります」と言えれば、進路相談やインターン応募で学習意欲を示しやすくなります。
今日からできること
- Ubuntu(またはWSL)で
sudo apt install apache2を実行する - ブラウザで
http://localhostを開いてデフォルトページを確認する /var/www/html/index.htmlを自分のHTMLに書き換えて表示テストする