SSブログ

Apacheからnginxへの移行 [CentOS]

一部の Web サーバーについて、Apache から nginx への移行を行った。

対象となる Apache の現状は、下記の通りである。

・Apache 2.2 を使用している。
・CentOS 6.5 上で実行している。
・名前ベースのバーチャルホストを構成している。
・静的コンテンツ、および PHP による動的コンテンツを提供している。
・Java による動的コンテンツについては、Tomcat 7.0 のリバースプロキシとなる。

インストール、および主な設定の手順は、以下の通りである。

1. インストール


今回は、EPEL のバイナリパッケージを使用する。
(nginx version: nginx/1.0.15)

# yum --enablerepo=epel install nginx

2. 基本的な設定


設定ファイル(/etc/nginx/*.conf) の server {} に設定する。
なお、変更内容を有効にするには、nginx の再起動が必要である。

・/etc/nginx/default.conf ... 基本的な設定
・/etc/nginx/virtual.conf ... バーチャルホストの設定

(1) サーバー名、ポート番号


server_name、listen に設定する。

(例)
listen         80;
server_name    server_1;


(2) ドキュメントルート


location / {} 内の root に設定する。

・location / {} の外側で設定することも可能である。
・設定値は、 $document_root で参照可能である。

(例)
location / {
    root /usr/share/nginx/html;
    ...
}


(3) アイコン・ディレクトリ


アイコン用のディレクトリを別途作成する場合には、下記のように設定する。

(例)
location /icons/ {
    alias    /usr/share/nginx/icons/;
}

# alias ではなく、root を使用することでも対応可能である。


(4) バーチャルホスト


バーチャルホスト毎に、ホスト名、ドキュメントルート、等の設定を追加する。
(詳細は、virtual.conf のサンプルを参照。)


3. Tomcat との連携のための設定


default.conf において、下記のような location の設定を追加する。
なお、変更内容を有効にするには、nginx の再起動が必要である。

(例)
# Servlet、JSP のサンプル実行用の設定
location /examples/servlets {
    proxy_pass http://localhost:8080;
}
location /examples/jsp/ {
    proxy_pass http://localhost:8080;
}

4. PHP の実行のための設定


(1) php-fpm のインストール

# yum install php-fpm


(2) コンテンツのための設定


default.conf において、下記のような設定を追加する。
(fastcgi_param に設定するパスは実行環境に合わせる。)
なお、変更内容を有効にするには、nginx の再起動が必要である。

(例)
location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}


(3) php-fpm の起動

# /etc/init.d/php-fpm start


(4) nginx の再起動

# /etc/init.d/nginx restart

5. その他の設定


設定ファイル(/etc/nginx/nginx.conf) に設定する。
なお、変更内容を有効にするには、nginx の再起動が必要である。

(1) ワーカー・プロセスの数


worker_processes に起動するプロセス数を設定する。

(例)
worker_processes  4;

6. 備考


(1) 参考資料


http://nginx.org/en/docs/

・日本語ドキュメントも存在するが、英語版より量が少ない。
 (http://nginx.org/ja/docs/)


(2) EPEL 以外のリポジトリの使用


nginx 専用のリポジトリを使用することも可能である。

(a) リポジトリの登録

# rpm -ivh \
http://nginx.org/packages/centos/6/noarch/RPMS/\
nginx-release-centos-6-0.el6.ngx.noarch.rpm        … 2〜3 行目は一行で入力


(b) パッケージのインストール

# yum install nginx


nice!(1)  コメント(0)  トラックバック(0) 

nice! 1

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。