Nginxで複数のWebサイトを稼働させる方法(バーチャルホスト)

Nginxで複数のWebサイトを稼働させる方法(バーチャルホスト)

Linuxで複数のWebサイトを運営する場合、WebサーバーアプリとしてApacheやNginxを利用しているなら、1台のWebサーバー上で複数のWebサイトを公開できるバーチャルホスト機能が便利です。

そこでここでは、Nginxのバーチャルホスト機能を使って、1台のWebサーバー上で2つのWebサイトを公開する方法を紹介します。

この記事は、以下の環境での動作結果を基にしています。他のソフトウェアやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
CentOS Linux7.4
Nginx1.13.10

バーチャルホストの設定

ここでは、Nginxですでに1つのWebサイト(example.com)を公開している環境で、追加のWebサイト(sub.example.com)を公開する方法を紹介します。

設定ファイルの作成

追加のWebサイト(sub.example.com)をバーチャルホストとして追加するときは、Nginxの設定ファイルに、追加のWebサイト用のserverディレクティブを追記するだけです。

なお、記述内容は、既存サイトの設定をコピーしてから待ち受けホスト名などの個別設定部分を修正するとよいでしょう。

server {
  server_name example.com;
  root /user/share/nginx/site1;
  ・・・  ・・・
  ・・・  ・・・
  access_log /var/log/nginx/site1.access.log main;
  error_log /var/log/nginx/site1.error.log;
  ・・・  ・・・
  ・・・  ・・・
}

server {
  server_name sub.example.com;
  root /usr/share/nginx/site2;
  ・・・  ・・・
  ・・・  ・・・
  access_log /var/log/nginx/site2.access.log main;
  error_log /var/log/nginx/site2.error.log;
  ・・・  ・・・
  ・・・  ・・・
}

あとがき

1台のサーバーで複数のWebサイトを稼働させた場合、サーバーが止まると、すべてのサイトが停止してしまうリスクはありますが、サーバーリソースの有効活用という意味ではメリットが十分あるのではないでしょうか。