月曜日 2 25, 2008

nginx: install

現状世界最速のウェブサーバ、「nginx」(エンジンエックス)

代表的な特徴は先日の記事にも書きましたが、

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

があげられますが、これ以外にもFLVのストリーミング機能があったり、webdavが使えたりと多機能です。
今回は、インストールと設定方法の紹介です。
ちなみに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
flvのストリーミングモジュールとwebdavを有効化しています。
ほかにもさまざまなモジュールがあります。
モジュールの詳細はこちら
そして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ファイルを読んでみたいと思います。

 

金曜日 2 22, 2008

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のようなスモールフットプリントのウェブサーバーと組み合わせれば、限られたリソースのマシンでもうまく動作するでしょう。


About

Tomo

Search

Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
今日