🐧 Linux 総合学習プラットフォーム
サーバ構築 ・ 中級

1台で複数サイト(バーチャルホスト)

1台のWebサーバで複数のサイトを公開できるのがバーチャルホストだ。ServerName(ドメイン名)ごとに DocumentRoot を分け、届いたリクエストの Host 名で振り分ける。設定は /etc/httpd/conf.d/ に置き、httpd -t で構文を検査してから reload して反映する。

サイトを立てるたびにサーバを1台ずつ用意するのは無駄だ。1台のWebサーバに複数のドメインを同居させ、名前で振り分ける——それがバーチャルホストだ。

🏠 名前で振り分ける

ブラウザは「どのドメインが欲しいか」をリクエストのHostヘッダに入れて送る。サーバはそれを見て、ドメインごとに用意した別々のDocumentRootへ案内する。1つのIPで何十サイトも運用できる。

1台のhttpda.example →b.example →/var/www/a/var/www/b

📝 設定と検査

設定は /etc/httpd/conf.d/ に、サイトごとの <VirtualHost> ブロックで書く。ServerName にドメイン、DocumentRoot に公開フォルダを指定する。書いたら httpd -t で構文を検査し、httpd -S で読み込まれたvhost一覧を確認する。

💡
ポイント反映は restart より reload が無難。既存の接続を切らずに設定だけ読み直せる。systemctl reload httpd。
つまずき公開フォルダを /var/www 以外にするなら、SELinuxの文脈設定を忘れずに。正しく置いたのに403、はたいてい文脈の問題だ。

この項目に出てくる用語

バーチャルホストばーちゃるほすと
1台のWebサーバで複数のサイト(ドメイン)を公開する仕組み。

関連コマンド

httpd (Apache)systemctlcurl

▶ 学習アプリでこの続きを学ぶ・演習する