Webサーバをapacheからnginxに移行してみて1ヶ月ほどが経過しました.
導入時は色々手間取りましたが,導入完了後は特にトラブルなく,apacheよりサクサク動いてくれています.
nginxのモジュールに lua-nginx-module というものがあります.
このモジュールを使うことで,ページの生成やリダイレクトなど,様々なnginxの操作をLuaスクリプトで行うことができるようになります.
例えば,Luaスクリプトでコンテンツを動的生成したい時は以下のような一文で実現できます.
content_by_lua "ngx.print('Hello, world!')";
今回はこのモジュールを使用して,サーバの状態をjsonで吐いてくれるスクリプトを組んでみました.
こんなかんじになりました.
今回からLuaの勉強を始めてみましたが,まだまだ書式に慣れません…
実際にnginxに組み込む設定はこんなかんじです.
location /status { default_type 'application/json'; content_by_lua_file /path/to/stat.lua; }
これで /status にアクセスした時に指定されたLuaスクリプトが実行され,出力されます.
あとはJavaScriptで定期的に非同期読み込みするようにするなどして利用します.私は自分用の管理画面の表示に使ってます.