なので、動的にさばくもの(phpとか)はapache、静的にさばくもの(jsとかcssとか)はnginxを使うことにした。
■参考サイト
KAYACさん
http://kray.jp/blog/nginx/
まず、yumのリポジトリにはnginxはないので、redhadの拡張パッケージ(EPELというらしい)を追加します。
http://download.fedora.redhat.com/pub/epel/5/i386/ rpm -ivh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm yum -y install nginx
次に、httpd-devel最新版をいれときます。これは、あとで使うmod_rpaf用です。
yum -y install httpd-devel
リバースプロキシを経由させるとリモートホストのアドレスが127.0.0.1になっちゃうらしい。
そうするとアクセス解析するときとか困っちゃうので、プロキシを経由したリクエストのアドレスを記録した
X-Forwarded-Forをホスト名で上書きしてくれないといけないらしい。
詳しく解説されている方がいるのでhttp://www.namazu.org/~takesako/diary/?date=20031205を見てください。
mod_rpafは、現時点では0.6が最新なので、0.6を入れます。
wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz tar xzf mod_rpaf-0.6.tar.gz cd mod_rpaf-0.6なぜかMakefileにapxのパスを書かないといけない。
which apx vi Makefile APXS2=/usr/sbin/apxs make rpaf-2.0 sudo make install-2.0
■とりあえずインストール作業が済んだら、apacheとnginxの設定ファイルをいじります。
apache側のポート番号は、何でも良いはず(今回はKAYACさんの記事に合わせました)。
ポート番号は、
lsof -i | grep {ポート番号}とか
netstat -na | grep {ポート番号}で調査できると思います。
まず、ginx.confの修正。
vi /etc/nginx/nginx.conf
以下を追記します。
location ~ .*\.(jpg|JPG|gif|GIF|png|PNG|swf|SWF|css|CSS|js|JS|inc|INC|ico|ICO) { root /var/www/vhosts/kray.jp/htdocs; index index.html; ssi on; break; } location / { proxy_pass http://127.0.0.1:8082; break; }
■次に、httpd.confの修正。
mod_rpafのロードを追記。
vi /etc/httpd/conf/httpd.conf LoadModule rpaf_module modules/mod_rpaf-2.0.so
バーチャルホストの設定を追記。
ServerName kray.jp DocumentRoot /var/www/vhosts/kray.jp/htdocs RPAFenable On RPAFsethostname On RPAFproxy_ips 127.0.0.1 10.0.0.1 RPAFheader X-Forwarded-For
設定ファイル確認して
/usr/sbin/apachectl configtest
apache起動して
/usr/sbin/apachectl stop /usr/sbin/apachectl start
nginxも起動する
/etc/init.d/nginx start
■ハマったこと
httpd.confのチェックするときに、エラー発生。
/usr/sbin/apachectl configtest
Syntax error on line 1000 of /etc/httpd/conf/httpd.conf: Invalid command 'RPAFenable', perhaps misspelled or defined by a module not included in the server configuration→モジュールがロードされていなかったので
LoadModule rpaf_module modules/mod_rpaf-2.0.soをhttpd.confに追記して解決しました。