nginx: install
現状世界最速のウェブサーバ、「nginx」(エンジンエックス)
代表的な特徴は先日の記事にも書きましたが、
- 非常に軽量(使用メモリ約2M)
- 高速(Apache,lighttpdより若干速い)
- 優れたProxy 機能(HTTPだけでなく、POP/IMAPなどのproxyも可能)
今回は、インストールと設定方法の紹介です。
ちなみにubuntuの場合は、aptでインストールできます。
以下ソースからのコンパイル方法です。
0.前提としてlibpcreが必要なので、インストールされていない場合は、インストールしてください。
1.ソースの取得
nginxのサイトから最新版ソースを取得し、展開
2. コンパイル
configureだけでもいいのですが、後々のことを考えて、以下のようなオプションを付けます。
./configure --prefix=/Applications/nginx --with-http_flv_module --with-http_dav_module --with-http_gzip_static_module
ほかにもさまざまなモジュールがあります。
モジュールの詳細はこちら
そしてmake & make installでインストールされます。
デフォルトの設定では/usr/local/nginx(以下$NGINX_HOMEとします)にインストールされます。
設定ファイルは、$NGINX_HOME/confの中にあるnginx.confです。
とりあえず今回は起動するだけなので、なにも編集せず、
$NGINX_HOME/sbin/nginx
でnginxを起動します。
port 80でリッスンするので、ブラウザでhttp://localhostにアクセスすれば、"Welcome to nginx!"と書かれたページが表示されるはずです。
ps でプロセスをみるとmasterプロセスとworkerプロセスが1つずつ動いているのがわかるかと思います。
$ ps -ef|grep nginx
12035 ?? Ss 0:00.00 nginx: master process ./nginx
12036 ?? S 0:00.00 nginx: worker process
12040 s000 R+ 0:00.00 grep nginx
このようにnginxはマスタープロセスを起動すると、そのマスタープロセスによってworkerプロセスが起動されるような構造になっています。
次回はconfigファイルを読んでみたいと思います。
2008/02/25 by Tomo Nozawa
nginx + glassfish
おそらく世界最速のウェブサーバー”nginx”(エンジンエックス)とGlassfish gemを組み合わせて使う方法。
nginxはロシアで開発されているオープンソースのウェブサーバー。日本では最近ようやく日の目を見始めました。
特徴としては
- 非常に軽量(使用メモリ約2M)
- 高速(Apache,lighttpdより若干速い)
- 優れたProxy 機能(HTTPだけでなく、POP/IMAPなどのproxyも可能)
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;
}
}nginx -t
そして、エラーがなければ
glassfish_rails <アプリケーションディレクトリ>
でglassfishを起動後、
nginx
でnginxを起動。そして
http://<ホスト名>
でアクセスすると、リクエストがGlassfishにリダイレクトされ、Railsアプリケーションが起動します。
Glassfishはフットプリントが大きいので、nginxのようなスモールフットプリントのウェブサーバーと組み合わせれば、限られたリソースのマシンでもうまく動作するでしょう。
2008/02/22 by Tomo Nozawa
