読者です 読者をやめる 読者になる 読者になる

Blowin' in the Wind

~ memorandum ~

Debian8(さくらVPS)にNginxでVirtual Hostを構築

目的

Debian8(さくらVPS)サーバにインストールしたNginxでVirtual Host を構築する。

前提と環境

NginxにVirtual Hostを設定

さくらインターネット側でドメインの登録

今回の設定は、ムームードメイン側の設定は「 GMOペパボ以外 のネームサーバを使用する」とし、さくらインターネット側に既取得済みのドメインの情報を登録することとした。

さくらインターネット側でサブドメインの設定を実施。

手順の詳細は参考サイト記載の「さくらVPSのサブドメイン設定方法 - メコログ」の通り。

会員メニュー --> 契約情報 --> 契約ドメインの確認 --> ドメインメニュー --> ゾーン編集 -->

ドメインが有効かを nsloojup コマンドで確認。 

$ nslookup sub1.domain-a.com

ディレクトリ構成の決定

お好みですが、各ユーザのhomeディレクトリにsitesというディレクトリを新たに作成し、各webサイトの格納ディレクトリを作るという構成にしました。

サブドメインを作る場合は、サブドメイン名を、無い場合は www と命名することとしました。

/home/ユーザ名/sites/サブドメイン名/ドメイン名/public <-- index.html等格納

                                                                                /log        <-- log格納

今回、具体的には、sub1/domain-a.com と sub2/domain-a.comの2つを構築する。

    /home/user1/sites/sub1/domain-a.com/.....

    /home/user1/sites/sub2/domain-a.com/.....

NginxにVirtual Hostの設定

  • Virtual Host用のデータを格納するディレクトリ作成
    $ mkdir /home/user1/sites
    $ mkdir /home/user1/sites/sub1
    $ mkdir /home/user1/sites/sub1/domain-a.com
    $ mkdir /home/user1/sites/sub1/domain-a.com/{public,log}
    以下、sub2も同様に作成。

トップページ(index.html)の作成

$ vim  ~/sites/sub1/domain-a.com/public/index.html

$ vim  ~/sites/sub2/domain-a.com/public/index.html

テスト的に内容は以下。

<html>
<head>
<title>sub1/domain-a</title>
</head>
<body>
Welcome to Sub1.Domain-a.com! ←Webの画面にこれが表示されます。
</body>
</html>

バーチャルホスト設定ファイルの作成と配置

設定ファイルに関する情報は以下のファイルです。

    /etc/nginx/nginx.conf

この中に、以下の記述があります。

    include /etc/nginx/conf.d/*.conf;

デフォルトの設定ファイルは以下です。

    /etc/nginx/conf.d/default.conf

設定ファイルの反映の方法は色々できるわけですが、/etc/nginx/conf.d ディレクトリ に「定義名.conf」のファイルを作成し、配置することとした。

    /etc/nginx/conf.d/domain-a.conf

 

設定内容は以下。

server {
   listen 80;
   server_name sub1.domain-a.com ;
   access_log /home/user1/sites/sub1/domain-a.com/log/access.log;
   error_log /home/user1/sites/sub1/domain-a.com/log/error.log;
   location / {
        root /home/user1/sites/sub1/domain-a.com/public/;
        index index.html index.php;
        }
   }
server {
   listen 80;
   server_name sub2/domain-a.com ;
   access_log /home/user1/sites/sub2/domain-a.com/log/access.log;
   error_log /home/user1/sites/sub2/domain-a.com/log/error.log;
   location / {
        root /home/user1/sites/sub2/domain-a.com/public/;
        index index.html index.php;
        }
   }

 

確認

Nginxの再起動

$ sudo /etc/init.d/nginx stop ←Nginx停止
$ sudo /etc/init.d/nginx start ←Nginx起動

ブラウザで確認

  

参考サイト

nginx @ ウィキ - nginx バーチャルホスト

プログラミングビギナーNekoteniがあなたに贈る!NginxでVirtual Hostの巻 - ねこテニ

Nginxのバーチャルホスト設定 - Qiita

nginxのサブドメインでrailsの複数アプリを運用 - mikami's engineer diary

nginx連載4回目: nginxの設定、その2 - バーチャルサーバの設定 - インフラエンジニアway - Powered by HEARTBEATS

さくらVPSのサブドメイン設定方法 - メコログ