軽量で高速なウェブサーバNginxを、Ubuntu 12.04に導入する(設定編その1)

Updated:

今回は、特にUbuntu個有の設定ファイルの書き方やコンベンションについて説明します。(前回の起動・停止編はこちら)

Ubuntuでは、Nginxの設定ファイルは/etc/nginx以下に置かれています。

メイン設定ファイル: nginx.conf

/etc/nginxには、メインの設定ファイルnginx.confがあります。nginx.confには、サイト全体の設定を記述します。Nginxをインストールした状態では、サンプルの設定が入っています。

/etc/nginxの直下には、この他にもいろいろな設定ファイルがありますが、通常はnginx.conf以外をいじる必要はないでしょう。

追加設定用ディレクトリ: /etc/nginx/conf.d

このディレクトリには、追加の設定を行なうためのファイルを入れます。nginx.confの末尾では、このディレクトリと/etc/nginx/sites-available(この後すぐに説明します)の中にある*.confを読み込むようになっています。

Nginxをインストールした状態では、このディレクトリには何も入っていません。

仮想ホスト設定用ディレクトリ: /etc/nginx/sites-{available,enabled}

2つのディレクトリ/etc/nginx/sites-availableと/etc/nginx/sites-enabledは、仮想ホストを設定するためのものです。

/etc/nginx/sites-availableには、仮想ホストの設定ファイルを入れます。1つの設定ファイルで、仮想ホスト1個を定義します。設定ファイル名は、仮想ホストのドメイン名と同じにすると管理が楽です。

インストール時には、このディレクトリにはdefaultというファイルが入っています。この内容を参考にして、仮想ホストの定義を書くとよいでしょう。

Nginxは、起動時に、ディレクトリ/etc/nginx/sites-enabledに入っている設定ファイルを読み込みます。ですから、有効にしたい仮想ホストについては、sites-available/にある設定ファイルへのシンボリックリンクを、sites-enabled/の中に作っておかなければなりません。

例えば、仮想ホストwww.foo.comを定義するには、次のようにします。

1. ディレクトリ/etc/nginx/sites-availableの中に、仮想ホストwww.foo.comの設定を記述したファイルwww.foo.comを作成する。

$ sudo vi /etc/nginx/sites-available/www.foo.com
....
     仮想ホストwww.foo.com の設定を入力する
....

2. ディレクトリ/etc/nginx/sites-enabledの中に、1で作成した設定ファイルwww.foo.comへのシンボリックリンクを作る。シンボリックリンクの名前は、設定ファイルと同じ名前www.foo.comにする。

$ sudo ln -s /etc/nginx/sites-available/www.foo.com /etc/nginx/sites-enabled

3. Nginxをリスタートする

$ sudo /etc/init.d/nginx restart

また、仮想ホストwww.foo.comを(一時的に)無効にするには、ステップ2で作成したシンボリックリックを削除して、Nginxをリスタートしてやります。

つまり、シンボリックリンクを作成すれば仮想ホストは有効になり、シンボリックリンクを削除すれば、仮想ホストは無効になります。

余談ですが、Ubuntuでは、apacheでも、2つのディレクトリsites-availableとsites-enabledを使って、仮想ホストを管理します。さらに、apacheでは、コマンドa2ensite(仮想ホストを有効する)とa2dissite(仮想ホストを無効にする)が用意されています。

しかし、Nginxでは、このようなコマンドは用意されていないので、手作業でsites-enabledからsites-availableへのシンボリックを作成・削除する必要があります。

次回は、実際の設定ファイルをみてみます。