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

ショウジンブログ

Learn as if you will live forever, Live as if you will die tomorrow.

Web領域と設定ファイルを作成する@Nginx

Nginx
Sponsored Links

ハイパフォーマンスHTTPサーバ Nginx入門

ハイパフォーマンスHTTPサーバ Nginx入門

バーチャルホスト運用のためにWeb領域と設定ファイルを作成します。

デフォルト状態では前述のように/usr/share/nginx/htmlがWebルートになっています。

これを/var/www配下に変更し、このwww配下で、ホスト(ドメイン)ごとにディレクトリを分けてバーチャルホスト運用をしていくことにします。

バーチャルホスト運用でホストごとに設定をするには

/etc/nginx/sites-available配下にそのホスト名で設定ファイルを作成します。

まず、ホスト毎の設定ファイルを格納するディレクトリ「sites-available」と「sites-enabled」を作成します。

$ sudo mkdir /etc/nginx/sites-available
$ sudo mkdir /etc/nginx/sites-enabled

sites-availableにホスト毎の設定ファイルを置き、sites-enabledからシンボリックリンクを張ってnginx.confからはsites-enabledを読み込むようにします。

これらのディレクトリを作成したら、nginx.confのhttpブロックに下記の記述を加えます。

/etc/nginx/nginx.conf

ここからはホスト毎の設定をします。

例:example.hoge

さっき作成したsites-available内にこのホスト名でファイルを作成しその中に以下の記述をします。

/etc/nginx/sites-available/example.hoge

server {        
        listen 80;

        ## ホスト名 ##
        server_name example.hoge;

        ## ログ ##
        access_log /var/log/nginx/example.hoge.access.log;
        error_log /var/log/nginx/example.hoge.error.log;


        location / {
               
                ## Webドキュメントルートの指定をフルパスで ##
                root /var/www/html/example.hoge/public_html;
                index index.html index.htm index.php;
        }

        location ~ /\.ht {
                deny all;
        }

}

Webドキュメントルートで指定したとおりにディレクトリを作成しておきます。

/var/www/html/example.hoge/public_html

このpublic_htmlの中に確認用にindex.htmlを用意しておきます。

ここまで用意ができたらnginxの設定ファイルの書式に問題がないかチェックします。

$ sudo /usr/sbin/nginx -t

問題がなければ下記メッセージが表示されます。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

問題がないことを確認したら、この新規に作成したexample.hoge用の設定ファイルを有効化します。

$ sudo ln -s /etc/nginx/sites-available/example.hoge /etc/nginx/sites-enabled/

この段階ではシンボリックリンクがsites-enabledのほうに作成されるだけでまだ追加したホストは有効ではありません。

以下のコマンドで有効化した設定ファイルをリロードします。

$ sudo /usr/sbin/nginx -s reload

ブラウザで「example.hoge」にアクセスして確認。確認用に用意したindex.htmlの内容が表示されればオーケー。

今後もドメイン(ホスト)を追加する場合は同様の作業を繰り返せばよいのだと思います。

  1. 設定ファイルを作成
  2. 設定ファイルを有効化
  3. 有効化した設定ファイルをリロード

この手順で。

あと、ホストごとに用意したWebルートディレクトリのパーミッションに注意。

rootで作成しているとFTP/SFTPのユーザアカウントでファイルをアップロードしようとしても蹴られてしまうので。

このあたり、どうするのがスマートなのか考え中。

FTP/SFTPでアクセスするユーザにディレクトリの所有権をchownで変更しておけばいいのかなと思うけど。合わせてこのユーザの所属グループをnginxにしておけばなおいいの、かな?