複数の Web サイトをホストするように Apache と Nginx を構成する方法を学びましょう。
クラウド サーバー上でサイトをホスティングすると、共有ホスティングに比べて柔軟性が大幅に高まります。好きなものをインストールしたり、スケールアップまたはスケールダウンしたり、パフォーマンスとコストを最適化するように構成したりできます。
複数のビジネス サイトを実行しているが、それらを個別にホストしたくない場合は、Web サーバーの
Virtual Server
を利用できます。このシナリオを見てみましょう。
次の 2 つのサイトがあり、1 つのクラウド VM を参照したいと考えています。
- lab..com
- gf.dev
実装する前に、それがどのように機能するかを理解しましょう。
単一の Web サーバー インスタンス上に複数の Web サイトを配置するという概念は、
Virtual Server
と呼ばれます。これは、URL とともに構成ファイルで定義されます。定義された URL に対してリクエストが行われると、Web サーバーはそれぞれの
Document Root
からのトラフィックを処理します。

複数のドメインをホストするために Apache で仮想ホストを構成する
- Apache HTTP サーバーにログインする
- Apache conf の場所に移動します。 (デフォルトのインストールでは、/etc/httpd/conf/httpd.conf にあります)
- httpd.conf ファイルのバックアップを作成します。
-
2 つのドメインに対して行った以下のような
VirtualHost
コンテナを作成します。
<VirtualHost *:80>
ServerAdmin mail@example.com
DocumentRoot /opt/htdocs/lab
ServerName lab..com
ErrorLog logs/lab..com-error_log
CustomLog logs/lab..com-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin mail@xyz.com
DocumentRoot /opt/htdocs/gf-dev
ServerName gf.dev
ErrorLog logs/gf.dev-error_log
CustomLog logs/gf.dev-access_log common
</VirtualHost>
注: 要件に基づいて、 ServerAdmin 、 DocumentRoot 、 ServerName 、 ErrorLog 、 CustomLog の値を変更します。
- Apache HTTP を再起動し、両方の URL をテストします。

複数のドメインをホストするために Nginx で仮想ホストを構成する
- Nginxサーバーにログインする
- Nginx をインストールした場所に移動します。 (デフォルトの場所 – /etc/nginx/ にあります)
これを実現するには複数の方法があります。
nginx.conf
ファイルまたはカスタム ファイルがある場合は、それを変更できます。 conf.d フォルダーの下に
custom.conf
を作成することもできます。自分に合ったものを選択し、既存のファイルを変更する場合はバックアップを作成します。
- 以下に示すように、両方の URL のサーバー ブロックを作成します。
server {
listen 80;
root /opt/htdocs/lab;
index index.html index.htm;
server_name lab..com;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 80;
root /opt/htdocs/gf-dev;
index index.html index.htm;
server_name gf.dev;
location / {
try_files $uri $uri/ =404;
}
}
注: 要件に基づいて root 、 server_name の値を変更します。
- Nginx を再起動し、両方の URL をテストします。
URL の DNS レコードを更新してサーバー IP にマッピングすることを忘れないでください。完了すると、上記の設定によって提供される URL にアクセスできるようになります。
結論
以上が、Apache や Nginx などの単一の Web サーバー インスタンスで複数のドメインをホストするためのクイック ガイドでした。 Web サイトが公開されたら、セキュリティの脆弱性に対してテストすることを忘れないでください。
