お問い合わせはこちら

NginxでVirtual Hostsを設定してみた

公開
更新

バーチャルホスト(Virtual Hosts)の仕組みを活用すれば、1台のサーバーに複数のWebサイトを共存させて公開可能です。Webサーバーには高速なNginxを選び、バーチャルホスト化する方法を初めての方にもわかりやすく解説しています。コピペして使えるコマンドも用意しました。一度体験すれば決して敷居は高くありません。お財布にもやさしいこの設定方法を、ぜひ習得してみませんか?

NginxでVirtual Hosts

そもそもバーチャルホストって何?

バーチャルホストとは

1棟のマンションに複数の家族(家)が入居しているように、1台のサーバーを複数のWebサイトまたはドメインで利用する技術を、バーチャルホストと呼んでいます。

ドメインの数だけサーバーを用意するのは、資源・手間ひま・コストなどの面で大変です。そこでバーチャルホストが登場しました。初めての方にとっての設定はとっつきにくいかも知れませんが、慣れてしまえばこれほど素敵な仕組みは他にありません。

これだけ用意すれば準備OK!

サーバーとソフトウェアが必要です。用意するものをご確認ください。

(1)サーバープランとスペック

今回はカゴヤ・ジャパン提供の「VPS」を利用し、環境を構築していきます。今回利用するCPU1コアのプランでは、ストレージはSSD25GB、メモリー1GBが用意されています。

このプランは初期費用が不要で、日額20円から好きな期間だけ申し込みができます。テストなどの短期利用でも、他社に比べかなりお得に利用できます。

(2)サーバーソフトウェア

この記事では、次のようなソフトウェアを組み合わせています。操作が比較的やさしく、処理速度が速いものを選びました。

名称導入方法
OS名とバージョンUbuntu 20.04(64bit)コントロールパネルで「OSテンプレート」から選択
WebサーバーNginxターミナルエミュレータを使ってインストール

この記事の流れ

この記事では下記の流れでインストールからチェック、運用まで解説してゆきます。

1:インストール・設定編

  1. KAGOYA CLOUD VPS の申し込みとサーバー環境の用意
  2. Webサーバー Nginxのインストール
  3. Nginxのバーチャルホスト化

2:チェック編

  1. コマンドで確認する
  2. ブラウザでテストページを表示する

3:運用編

一部だけご覧になりたい方は、目次をクリックして進めてください。

1 :インストール・設定編

ここでは、インストールから初期設定を解説してゆきます。

 (1) KAGOYA CLOUD VPS の申し込みとサーバー環境の用意

1:VPS の申し込みを行います

KAGOYA CLOUD VPS オンラインお申し込み」ページより手続きをすれば、すぐに利用開始できます。利用規約を確認し、クレジットカード情報を含む個人情報を登録します。これらの情報を一度登録しておけば、このあと利用するサービスを申し込んだあと、使った分だけ料金の引き落としが始まります。支払いは1か月分まとめてではなく、使った日数分だけで済むので安心ですね。

2:サーバー環境の用意しましょう

サーバーを利用するには、コントロールパネル上で「インスタンス」を作成します。この場合「インスタンス」とは、自分専用のサーバーの意味があります。それではコントロールパネルにログインしましょう。

サーバーの準備

「インスタンス作成」ボタンをクリックします。

Ubuntuで進める

次にお好みのスペックを選んでいきます。この記事では次のような組み合わせにしました。

OSテンプレートUbuntu 20.04(64bit)
CPU/メモリー1コア/1GB
ストレージ25GB[SSD]

この他に「ログイン用認証キー追加」作業と「ログイン用認証キー追加」「コンソールログインパスワード」「インスタンス名」の入力が必要です。マニュアルにそって進めれば、それほど難しくありません。

出来上がったら、「インスタンス一覧」が表示されます。利用するインスタンスに書かれているIPアドレスを確認します。

次に「Tera Term」などのソフトを使って、サーバーにSSH接続します。「ホスト」欄には、さきほど確認したサーバーのIPアドレスを入力します。「TCPボート」欄には、自身で設定した数字を入力します。特に設定していない場合、初期値は22になります。

画面が変わったら、以下の操作をして「OK」-ボタンをクリックします。

「ユーザー名」欄root
「秘密鍵」欄さきほど作成した「ログイン用認証キー」ファイルを選択

詳しくはマニュアルをご覧ください。

コマンドの説明

これでサーバーにSSH接続できました。これからNginxのインストールとバーチャルホストの設定作業に移ります。

(2) WebサーバーNginxのインストール

1:システムの最新化を行う

以下のコマンドを入力し、システムを最適化・最新版にします。

【コマンド】

sudo apt-get update
sudo apt-get -y upgrade

2:Nginxのインストール

次に、以下のコマンドを入力し、Nginxのインストールを行います。

【コマンド】

sudo apt-get install nginx

こちらのコマンドを実行すると、次のような画面が表示されます。

Nginx本体と関連するパッケージのインストールを続行するので、Yとタイプしエンターキーを押します。問題がなければエラーメッセージは出ず、コマンドプロンプトの画面に戻ります。その他の設定は特に不要で、Nginxのインストールはこれで終了です。

 (3) Nginxのバーチャルホスト化

いよいよ本題です。test1.comtest2.co.jpという2つのドメインを、一気にバーチャルホスト化していきます。もちろん架空のWebサイトですが、動作テストも実施します。

1:公開ディレクトリの作成と所有権などの設定

以下のようにコマンドを入力し、ディレクトリを作成、所有権を設定します。

【コマンド】

sudo mkdir -p /var/www/test1.com/html
sudo mkdir -p /var/www/test2.co.jp/html
sudo chown -R $USER:$USER /var/www/test1.com/html
sudo chown -R $USER:$USER /var/www/test2.co.jp/html
sudo chmod -R 755 /var/www

今回はわかりやすいように、ディレクトリ名をtest1.comtest2.co.jpとして、その中にさらにhtmlというディレクトリを新規作成しました。各Webサイトのファイルは、このhtmlディレクトリ内に格納します。セキュリティなどの理由から、各ディレクトリには所有権やパーミッションを設定します。

2:公開テスト用ファイルの作成

ここではファイルの作成だけを行い、公開テストは別の章で実施します。

まずtest1.com用に作成します。

【コマンド】

sudo vi /var/www/test1.com/html/index.html

test1.comの公開テスト用ファイル(index.html)を作成し、以下のテキストを追記します。

test for test1.com

保存し、編集画面を終了します。

次に同じ要領で、test2.co.jp用に作成します。

【コマンド】

sudo vi /var/www/test2.co.jp/html/index.html

test2.co.jpの公開テスト用ファイル(index.html)を作成し、以下のテキストを追記します。

test for test2.co.jp

保存し、編集画面を終了します。

3:Nginxの設定ファイルの操作

ここでは次の3ステップに分けて解説します。

(第1ステップ) 設定ファイルの作成(すでにあるサンプルファイルをコピー)

【コマンド】

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/test1.com
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/test2.co.jp

(第2ステップ) ドメインに合うように修正

まずtest1.comの方から修正します。

【コマンド】

sudo vi /etc/nginx/sites-available/test1.com

修正内容は以下の通りです。

修正前修正後
41行目root /var/www/html;root /var/www/test1.com/html;
46行目server_name _;server_name test1.com;

次にtest2.co.jpの方を修正します。

【コマンド】

sudo vi /etc/nginx/sites-available/test2.co.jp

修正内容は以下を参考にします。

修正前修正後
22行目listen 80 default_server;listen 80;
23行目listen [::]:80 default_server;listen [::]:80;
41行目root /var/www/html;root /var/www/test2.co.jp/html;
46行目server_name _;server_name test2.co.jp;

(注) test1.comtest2.co.jpの違い

test2.co.jp の方は、default_serverの記述を削除しています。test1.comをdefault_serverにしているためです。

(第3ステップ) 有効化

シンボリックリンクという設定を行い、有効化します。

【コマンド】

sudo ln -s /etc/nginx/sites-available/test1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test2.co.jp /etc/nginx/sites-enabled/

4:その他

これまで使用したサンプルファイルを削除します。削除しないとエラーになります。

【コマンド】

sudo rm /etc/nginx/sites-enabled/default

以上でNginxのバーチャルホスト化の作業は終了です。あとは正しく設定されているか確認する作業が残っています。

2: チェック編

以下の流れを順番に実施すれば、どこで間違っているのか見つけやすくなります。

(1) コマンドで確認する

【コマンド】

sudo /etc/init.d/nginx configtest

上記のコマンドを入力して「OK」が表示されれば、設定は正しいことがわかります。もし設定が正しくない場合は、エラーメッセージとともに修正箇所が表示されます。「OK」が出るまで修正をしましょう。

【コマンド】

sudo service nginx restart

Nginxを再起動して次のステップに移ります。

(2) ブラウザでテストページを表示する

架空のドメインを使用しているため、ブラウザにドメイン名を入れても、テストページは表示されません。そこで、自身で使用中のPCにのみ有効なDNS設定をして、架空のドメイン名とVPSのIPアドレスを結びつける設定をします。

2:自分専用のDNS設定方法

Windows 10 の場合「hostsファイル」に以下を追記します。

【コマンド】

xxx.xxx.xxx.xxx test1.com
xxx.xxx.xxx.xxx test2.co.jp

xxx.xxx.xxx.xxxの部分には、VPSのIPアドレスを入力します。「hostsファイル」の場所は、C:\Windows\System32\drivers\etc\hosts です。メモ帳で作業する場合は、ソフトを「管理者として実行」にて使用してください。

3:実際にブラウザでアクセスしてテストページを表示する

下記のように表示されれば正常です。

test1.comの場合

test2.co.jpの場合

以上でテストは終了です。

3:運用編

これで複数のWebサイトが1つのサーバーで管理できるようになります。個々のファイルを更新する場合には、ドメイン毎の公開ディレクトリを使います。FTPソフトを以下の場所につないで、HTMLなどファイルのアップロードなどを行います。

test1.com/var/www/test1.com/html
test2.co.jp/var/www/test2.co.jp/html

やってみてわかった!注意すべき点は?

これまでカゴヤ・ジャパン提供の「VPS」を利用し、バーチャルホストの構築テストをしてきました。最後に注意点をまとめてみたいと思います。

1:バーチャルホスト設定の作業は効率化できる!

ドメイン毎にやる作業は一緒です。あるドメインの作業を一通り終えてから、次のドメインの作業に取り掛かると効率が落ちます。そこで事前にコマンドなどをメモで整理しておけば、作業時間は短縮できます。また間違いを減らしたり、発見しやすくなったりします。

2:「VPS」を有効活用するのはバーチャルホスト環境が最適!

1台のサーバーを有効利用できます。もちろんWordPressなどの人気CMS用にも応用できます。

3:リスクもある

万一サーバー本体に不具合が発生すると、バーチャルホストで設定した全てのWebサイトが影響を受け、場合によってはWebサイトにアクセスできなくなります。

まとめ

ここまでいかがでしたか。カゴヤ・ジャパン提供の「VPS」を利用し、バーチャルホストの構築方法を解説してきました。また、作業をスムーズに進めるちょっとしたアイデアもご紹介しました。

今回検証に利用した「VPS」は、安心して利用できる筆者おすすめのプランです。マニュアルが整備され、コントロールパネルの操作は最小限に絞られていますし、コスト面でも、日額24円から好きな期間だけ利用できるのでお得です。ぜひお試しください。

日額 20円 で使えるVPS

開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS

カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。