ApacheからNginx へ移行

Webサーバを高機能低速なApacheから、シンプル高速動作のNginxに移行する。

静的なコンテンツが多い場合は、速度改善に劇的な効果がある。

 

1. サーバ側の事前準備

Nginxを動作させるグループとユーザの作成。

$ groupadd nginx

ユーザの作成。

シェルは無効にし(-s /sbin/nologin)、ホームディレクトリは後ほどNginxをインストールするディレクトリを指定する(-d /usr/local/nginx)。

$ useradd -g nginx -s /sbin/nologin -d /usr/local/nginx nginx

 

2. Nginxのコンパイル

yum等のパッケージ管理でインストールする場合は、公式サイトが参考になる。

以下は、コンパイルしてインストールする場合。コンパイルした方が様々なオプションの設定をコンパイル時に変更できる。

コンパイルには、gcc, PCRE(pcre, pcre-devel), zlib(zlib, zlib-devel), openssl(openssl, openssl-devel)が必要なため、インストールされていなければインストール。

$ yum install pcre pcre-devel

等。

Nginxソースコードのダウンロードと解凍。バージョンアップされている可能性もあるため、URLは随時公式サイトをチェック。

$ curl -O http://nginx.org/download/nginx-1.2.0.tar.gz
$ tar zxf nginx-1.2.0.tar.gz
$ cd nginx-1.2.0

デフォルト設定でコンパイル準備する(./configure)と、HTTPSが無効になるため、以下のオプションを与えてHTTPSを有効にする。

$ ./configure --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module

コンパイルとインストール。

$ make
$ make install

 

3. システムサービス化

$ service nginx start

等のコマンドでNginxを制御できるようにする。また、initに登録することで、サーバ起動時に自動起動できるようにもする。

公式サイトのここからinitスクリプトのサンプルを取得して、/etc/init.d./nginxとして保存。

環境にあわせて/etc/init.d/nginxの一部を変更する必要がるが、通常、下記2箇所の変更で問題ない。

nginx="/usr/local/nginx/sbin/nginx"
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

initスクリプトに実行権限を付与。

$ chmod +x /etc/init.d/nginx

スクリプトが起動時に自動実行されるように登録する。

$ chkconfig --add nginx
$ chkconfig nginx on

適切なランレベルで自動起動されるようになっているか確認。

$ chkconfig --list nginx

 

 4. 起動

$ servcie nginx start

 

■参考文献