基本的なバーチャルホスト設定
バーチャルホスト(またはサーバーブロック)を設定し、異なるドメイン名を使って1台のサーバーで複数のWebサイトをホストします。
「基本的なバーチャルホスト設定」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
複数のWebサイトをホスティングする
1台の高性能なサーバーがあり、myshop.comやmyblog.comのように、それぞれ異なるドメイン名を持つ複数のWebサイトをホストしたいとします。
サイトごとに別のマシンを用意せず、1台のサーバーで効率的に処理するにはどうすればよいでしょうか。
Virtual Hostsとは
ここで登場するのが、Virtual Hosts(Apache)またはServer Blocks(Nginx)です。
- 1台のWebサーバーで複数のドメイン名をホストできる設定単位です。
- 各ドメインに、独自のドキュメントルート(ファイルの保存場所)、ログ、個別の設定を割り当てられます。
- リソースを節約でき、サーバー管理も簡単になります。
ApacheのVirtual Hostを設定する
Apacheでは、Virtual Hostの設定は通常、専用のディレクトリにある.confファイルに保存されます。
/etc/apache2/sites-available/:利用可能なすべてのVirtual Host設定が含まれます。/etc/apache2/sites-enabled/:現在有効な設定へのシンボリックリンクが含まれます。
有効化にはa2ensiteなどのコマンドを使用します。
Apache:基本的なバーチャルホスト
こちらはシンプルな Apache のバーチャルホスト設定です。このファイルはsites-availableに作成します。
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName myfirstsite.com
ServerAlias www.myfirstsite.com
DocumentRoot /var/www/myfirstsite
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>Apache:設定手順
myfirstsite.com用の Apache バーチャルホストを設定する手順は次のとおりです。
- Webサイトのファイル用ディレクトリを作成します。
- バーチャルホスト設定ファイルを作成します。
- サイトを有効化して Apache を再読み込みします。
最初の2つの手順で使用するコマンドを見てみましょう。
sudo mkdir -p /var/www/myfirstsite/html
sudo chown -R $USER:$USER /var/www/myfirstsite/html
sudo nano /etc/apache2/sites-available/myfirstsite.confApache:有効化と再読み込み
.confファイルを作成して保存したら、次のコマンドを使用して有効化し、変更を適用します。
sudo a2ensite myfirstsite.conf:sites-enabledにシンボリックリンクを作成します。sudo apache2ctl configtest:Apache の設定に構文エラーがないか確認します。sudo systemctl reload apache2:サーバーを再起動せずに新しい設定を適用します。
sudo a2ensite myfirstsite.conf
sudo apache2ctl configtest
sudo systemctl reload apache2Nginx のサーバーブロック設定
Nginx ではサーバーブロックを使用します。これは Apache のバーチャルホストと非常によく似ています。また、ディレクトリ構成も似ています。
/etc/nginx/sites-available/:すべてのサーバーブロック設定を保存します。/etc/nginx/sites-enabled/:有効なサーバーブロックへのシンボリックリンクが含まれます。
補助コマンドの代わりに、シンボリックリンクを手動で作成します。
Nginx:基本的なサーバーブロック
こちらはmysecondsite.com用の基本的な Nginx サーバーブロック設定です。このファイルはsites-availableに作成します。
server {
listen 80;
listen [::]:80;
root /var/www/mysecondsite/html;
index index.html index.htm;
server_name mysecondsite.com www.mysecondsite.com;
location / {
try_files $uri $uri/ =404;
}
}Nginx:設定手順
mysecondsite.com用の Nginx サーバーブロックを設定する手順は次のとおりです。
- Webサイトのファイル用ディレクトリを作成します。
- サーバーブロック設定ファイルを作成します。
- シンボリックリンクを作成して Nginx を再読み込みします。
最初の2つの手順で使用するコマンドは次のとおりです。
sudo mkdir -p /var/www/mysecondsite/html
sudo chown -R $USER:$USER /var/www/mysecondsite/html
sudo nano /etc/nginx/sites-available/mysecondsiteNginx:有効化と再読み込み
サーバーブロックファイルを作成して保存したら、次のコマンドを使用して有効化し、変更を適用します。
sudo ln -s /etc/nginx/sites-available/mysecondsite /etc/nginx/sites-enabled/:シンボリックリンクを作成します。sudo nginx -t:Nginx の設定に構文エラーがないかテストします。sudo systemctl reload nginx:再起動せずに新しい設定を適用します。
sudo ln -s /etc/nginx/sites-available/mysecondsite /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxバーチャルホストの確認
これで、複数のサイトをホストするための Web サーバー設定方法を学びました。理解度を確認してみましょう。
復習:1台のサーバーで複数のサイト
よくできました。Apache のバーチャルホストと Nginx のサーバーブロックを設定するための基本を学びました。
- これらの設定により、1台のサーバーで複数の Web サイトを効率的にホストできます。
- 異なるドメイン名に対して、それぞれ固有の設定を行う方法が分かりました。
- これは、Web サーバー管理や複数のアプリケーションのデプロイに欠かせない基本スキルです。
よくある質問
「基本的なバーチャルホスト設定」レッスンは無料ですか?
はい。「基本的なバーチャルホスト設定」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
「基本的なバーチャルホスト設定」で何を学びますか?
バーチャルホスト(またはサーバーブロック)を設定し、異なるドメイン名を使って1台のサーバーで複数のWebサイトをホストします。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「基本的なバーチャルホスト設定」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。