openresty(ngx_openresty) として配布されてる tarボールを使うと 手っ取り早く Nginx で Lua +α する環境が作れます。超便利。
一例: OSXの場合
- 事前に homebrew も入れておいてね
brew install prce wget http://agentzh.org/misc/nginx/ngx_openresty-1.0.11.28.tar.gz tar xvfz ngx_openresty-1.0.11.28.tar.gz cd ngx_openresty-1.0.11.28 ./configure --with-luajit \ --prefix=~/ngx_openresty-1.0.11.28 \ --with-cc-opt="-I/usr/local/Cellar/pcre/8.21/include" \ --with-ld-opt="-L/usr/local/Cellar/pcre/8.21/lib" make make install
他プラットフォームについても http://openresty.org/#installation に詳細が記されています。Linuxの場合も yum/apt-get を使えるので楽できます。
何がいいの?
- LuaとかLua JIT がバンドルされていて、ビルドもしてくれる
- redis(redis2)やmemcached と繋ぐNginxモジュールだったり、LuaのJSONライブラリやハッシュ関数のライブラリだったりこまごまとしたツールも一緒にいれてくれる
- libdrizzleを用意すれば mysql にも繋げます
- http://openresty.org/#Components にバンドルされているモジュールの一覧があります。フル盛り。
- libdrizzleを用意すれば mysql にも繋げます
- 継続的に開発/メンテされている感
用途
少し前に lua-nginx-module の紹介 ならびに Nginx+Lua+Redisによる動的なリバースプロキシの実装案 というネタを書いたのですが、KVSと組み合わせて認証入れたり、アクセスカウンタ実装してみたり、SSI的な事やらせたり いろんな活用方法が考えられます。
あとがき
- そもそも lua-nginx-module 自体が ngx_openresty の一要素 といった関係。
- 取り上げる順番前後した
- カジュアルとか関係なしに、これ使うのが良いですね...
とにもかくにも インストールは簡単にできるので ちょっと触ってみてはいかがでしょうか