Apacheからnginxへの移行 [CentOS]
対象となる 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
コメント 0