nginx + glassfish

おそらく世界最速のウェブサーバー”nginx”(エンジンエックス)とGlassfish gemを組み合わせて使う方法。

nginxはロシアで開発されているオープンソースのウェブサーバー。日本では最近ようやく日の目を見始めました。

特徴としては

  • 非常に軽量(使用メモリ約2M)
  • 高速(Apache,lighttpdより若干速い)
  • 優れたProxy 機能(HTTPだけでなく、POP/IMAPなどのproxyも可能)

などがあげられます。ただし、FastCGIのみサポートされ、CGIは動作しません。
Proxy機能を使って、JRuby On Railsのアプリケーションの処理のみをGlassfishに
リダイレクトする方法を紹介します。
(後日、nginxの詳細やインストール方法、thinとの組み合わせなどを書く予定)


nginxの設定ファイル、nginx.confを以下のように設定します。
nginxはport80でリッスンするものとします。


 upstream glassfish {
server 127.0.0.1:3000; #proxyされる先のGlassfishのアドレス
}


server {
listen 80;
server_name <サーバー名>;

access_log <logディレクトリ>/access.log;
error_log <error ディレクトリ>/error.log;

root <Railsアプリケーションルートディレクトリ>/public;
index index.html;

location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect false;

if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}

if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}

if (!-f $request_filename) {
proxy_pass http://glassfish;
#上記に、upstreamで設定したproxy先を設定
break;
}
}
設定後、syntax checkします。

nginx -t

そして、エラーがなければ

glassfish_rails <アプリケーションディレクトリ>


でglassfishを起動後、

nginx


でnginxを起動。そして


http://<ホスト名>


でアクセスすると、リクエストがGlassfishにリダイレクトされ、Railsアプリケーションが起動します。

Glassfishはフットプリントが大きいので、nginxのようなスモールフットプリントのウェブサーバーと組み合わせれば、限られたリソースのマシンでもうまく動作するでしょう。


2008/02/22 by Tomo Nozawa

« Fastladder on JRuby... | メイン | nginx: install »

投稿されたコメント:

コメント
  • HTML文法 不許可