Kugelblitz

いつ何時誰の挑戦でも受ける!

apacheからnginxに移行してみる

apache httpdからneginx へ移行してみました。マルチサイト形式のwordpressと、ホームディレクトリでの静的webページの公開、そしてglassfishでのサービス提供を行っているため、これらの要件を満たすような設定を行います。

nginxのインストール

まずはnginxのインストールです。以下でリポジトリを追加します。CentOS6での例なので、他OSの場合は適宜変更してください。

# rpm -ivh  http://nginx.org/packages/rhel/6/noarch/RPMS/nginx-release-rhel-6-0.el6.ngx.noarch.rpm

リポジトリの追加後、設定ファイルを変更します。

# vi /etc/yum.repos.d/nginx.repo 

# nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/6/$basearch/
gpgcheck=0
enabled=1  # enabledを1から0に変更

enabledの値を1から0に変更して、明示的に指定した時以外はリポジトリが使われないようにしておきます。

ではnginxのインストールです。

# yum --enablerepo=nginx install nginx

インストールされました。

php-fpmのインストール

nginxでPHPを動かすには、php-fpmというものが必要だそうです。

こちらは、remiリポジトリからインストールします。remiリポジトリは以前インストールしているので、リポジトリ追加のくだりは割愛します。

# yum --enablerepo=remi install php-fpm

ここまでは簡単ですね。

nginxの設定(wordpress)

結構苦労しました。うまくいった!と思ったら管理ツールにアクセスできなかったり。。。

結果としては、wordpress公式ページにあるようにすればOKです。「メインスタートアップファイル」「Per Site configuration」「Global restrictions file」「WordPressのマルチサイトのサブディレクトリのルール」というのを選んでください。なお、「Per Site configuration」に「// Additional rules go here.」「// Only include one of the files below.」というコメントがありますが「//」ではコメントにならないので、削除するか、「#」に置き換えておきます。

また、「mysite.com;」とかルートの部分は自分の環境に合わせる必要がありますよ!

nginxの設定(その他)

glassfishへの転送は、

location /myclip {
        proxy_pass http://localhost:8080/myclip;
}

を入れておきます。

また、ホームディレクトリ(/home/[USER_NAME]/public_html)へは、

location ~ /~([a-zA-Z0-9_\-]+)(.*)$ {
    alias /home/$1/public_html$2;
    index index.html index.htm;
    # autoindex on;
}

とします。「autoindex on;」のコメントを外すと、ファイルの一覧(apacheでいうIndexOf)を表示できますので、必要に応じて設定してください。

さいごに

あと、詳しくは書きませんでしたが、wordpress関連ファイルのユーザー/グループをnginxユーザー/グループに変更しています。

今回はじめてnginxを入れてみましたが、いれるだけなら簡単ですね。wordpressの連携が面倒なだけだったので。

仕事で使うか、といったらうーん、って感じですかね。情報があんまりないんで、よっぽどapacheに対するアドバンテージがない限り提案しずらい感じです。業務アプリだと、そんなに静的ファイルを大量配信したい、とかいうニーズもあんまりないですしね。

キャッシュの設定とかもしてみたいのですが、とりあえずここまで!

Pocket

他の記事