テクノロジー アパッチHTTP 非公開: Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする

Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする

複数の Web サイトをホストするように Apache と Nginx を構成する方法を学びましょう。

クラウド サーバー上でサイトをホスティングすると、共有ホスティングに比べて柔軟性が大幅に高まります。好きなものをインストールしたり、スケールアップまたはスケールダウンしたり、パフォーマンスとコストを最適化するように構成したりできます。

複数のビジネス サイトを実行しているが、それらを個別にホストしたくない場合は、Web サーバーの Virtual Server を利用できます。このシナリオを見てみましょう。

次の 2 つのサイトがあり、1 つのクラウド VM を参照したいと考えています。

  • lab..com
  • gf.dev

実装する前に、それがどのように機能するかを理解しましょう。

単一の Web サーバー インスタンス上に複数の Web サイトを配置するという概念は、 Virtual Server と呼ばれます。これは、URL とともに構成ファイルで定義されます。定義された URL に対してリクエストが行われると、Web サーバーはそれぞれの Document Root からのトラフィックを処理します。

Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする
Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする

複数のドメインをホストするために 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 をテストします。
Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする
Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする

複数のドメインをホストするために 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 サイトが公開されたら、セキュリティの脆弱性に対してテストすることを忘れないでください。

Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする
Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする

「 Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする」についてわかりやすく解説!絶対に観るべきベスト2動画

【Webサーバー】NginxとApacheって何が違うのか解説してみた
IP アドレスをドメインにリダイレクトする方法 (Apache および Nginx)

複数の Web サイトをホストするように Apache と Nginx を構成する方法を学びましょう。

クラウド サーバー上でサイトをホスティングすると、共有ホスティングに比べて柔軟性が大幅に高まります。好きなものをインストールしたり、スケールアップまたはスケールダウンしたり、パフォーマンスとコストを最適化するように構成したりできます。

複数のビジネス サイトを実行しているが、それらを個別にホストしたくない場合は、Web サーバーの Virtual Server を利用できます。このシナリオを見てみましょう。

次の 2 つのサイトがあり、1 つのクラウド VM を参照したいと考えています。

  • lab..com
  • gf.dev

実装する前に、それがどのように機能するかを理解しましょう。

単一の Web サーバー インスタンス上に複数の Web サイトを配置するという概念は、 Virtual Server と呼ばれます。これは、URL とともに構成ファイルで定義されます。定義された URL に対してリクエストが行われると、Web サーバーはそれぞれの Document Root からのトラフィックを処理します。

Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする
Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする

複数のドメインをホストするために 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 をテストします。
Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする
Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする

複数のドメインをホストするために 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 サイトが公開されたら、セキュリティの脆弱性に対してテストすることを忘れないでください。

Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする
Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする

「 Apache または Nginx を使用して 1 つのサーバーまたは IP 上で複数のドメインをホストする」についてわかりやすく解説!絶対に観るべきベスト2動画

【Webサーバー】NginxとApacheって何が違うのか解説してみた
IP アドレスをドメインにリダイレクトする方法 (Apache および Nginx)