月別アーカイブ: 2013年11月

nginxをluaで制御する

こんにちは、しょうたんでございます!

身近でnginxという高速なwebサーバでluaというスクリプト言語を動作させた様子を見学する機会があり、phpとの速度差に驚嘆するという出来事がありました。
運用をよくよく考えて設計する必要がありますが、高速性能を求められる認証や画像処理に使えるのではと学習中です。
一部で利用が広がってるそうですが、馴染みが薄い言語であることには変わりなので、まずは軽く概要を紹介します。

lua – 概要
C言語のホストプログラムに組み込まれることを目的に設計されている
高速な動作と、高い移植性、組み込みの容易さが特徴
Pascalによく似た構文
インクリメンタル・ガベージコレクション→逐次検索のメモリ開放 が採用され、
リアルタイム用途における性能の改善が図られている
ゲーム開発のスクリプト等の内部処理に利用されている

なるほど、何だかやたら速そうです。。そして実際速かったです!
nginxという高速なwebサーバにlua-nginx-module を使い Luaを通してNginxを制御する方法でDB書き込みの動作を試験したところ、phpの軽く数十倍の速度が出ていました。
ただ、僕もこの手の物はphpやperlやjavaでしかメンテした事がないので、正直運用のイメージが湧きません。
nginxの設定ファイルにluaの処理を書いていきますが、実際の運用では
設定ファイルのlocation で高速性が求められる処理だけをURLを切り分け、luaの処理を実装し外部ファイル化するのは最低限やらなければ駄目そうです。
徐々に人気が出てきていて注目されてきているそうなので、今後の拡張にも期待できます。
もし運用に耐える設計をする場合、例えば現状ではJavaScriptにも文法が似ている点でサーバサイドのJavaScriptの運用が参考になるのでしょうか。

とりあえず未知の環境で性能が高いものは積極的に学ぼうと思いました。
では、今週はこの辺で、お疲れ様です。