nginxのバーチャルホストを設定

まず、バーチャルホストという言葉を初めて聞いたので、バーチャルホストについて調べてみる。

バーチャルホスト(Virtual Host)とは1つのサーバで複数のドメインを運用する技術のことで、Webサーバ、メールサーバなどで利用される。

もちろんへっぽこプログラマーなのでドメインという言葉を聞いたことはあるが、よくわかっていない。そこで、ドメインについても調べる。

ドメインとは、ネットワークに接続しているコンピュータの場所を示すインターネット上の「住所」にあたります。「住所」ですから、同じものは世界にふたつとありません。たったひとつだけです。ドメイン取得は先着順になっており、基本的に、先に取得した人がいた場合は、後から申請しても取得できません。裏をかえせば、どんなドメインでも最初に申請すれば、それがあなたの「住所」になります。

バーチャルホストを使えば複数の住所をもつことができるということなのだろう。バーチャルホストの設定は/etc/nginx/sites-available/の下に書く。

server {
  listen 80;
  server_name korosuke.com.local;
  access_log  /var/log/nginx/localhost.access.log;
  error_log  /var/log/nginx/localhost.error.log;
  
  location / {
  root   /usr/share/nginx/test;
  index  index.html;
  }
}          

/etc/nginx/sites-enabled/の下のファイルにシンボリックリンクを張る

シンボリックリンク

あるファイル、ディレクトリにアクセスした際に、別のファイル、ディレクトリを参照できるようにする「リンク」機能。


ハマった点

Macのローカルの中の /private/etc/hostsファイルにも設定を書かなければいけない。ここを書いていないため、どつぼにはまっていた。

192.168.56.101  korosuke.com.local

f:id:korosuke565:20140217123633p:plain

追記
バーチャルホストの設定を1つしか書いてなかったので、もう1つ設定を書き加えたいと思います。

1 まずローカルのMacのhostsファイルに新しいドメインを足す。わかりづらいのですがkorokoro.com.localというドメインを追加しました。

##
 # Host Database
 #
 # localhost is used to configure the loopback interface
 # when the system is booting.  Do not change this entry.
 ##
 192.168.56.101  korosuke.com.local
 192.168.56.101  korokoro.com.local

2 次にdebianにある/etc/nginx/sites-availableの下にあるバーチャルホストの設定ファイルに新しい設定を追加をします。

server {
   listen 443 ssl;
   ssl on;
   ssl_certificate  /etc/nginx/server.crt;
   ssl_certificate_key  /etc/nginx/server.key;

    server_name  korosuke.com.local;
    access_log  /var/log/nginx/localhost.access.log;
    error_log  /var/log/nginx/localhost.error.log;

    location / {
        root   /usr/share/nginx/test;
        index  index.html;
    }
}

server {
   listen 443 ssl;
   ssl on;
   ssl_certificate  /etc/nginx/server.crt;
   ssl_certificate_key  /etc/nginx/server.key;

    server_name  korokoro.com.local;
    access_log  /var/log/nginx/localhost2.access.log;
    error_log  /var/log/nginx/localhost2.error.log;

    location / {
        root   /usr/share/nginx/test2;
        index  index.html;
    }
}

3 nginxを再起動させhttps://korokoro.com.localに接続します。

f:id:korosuke565:20140221110756p:plain