Starman
最終更新日時:2012-01-25 00:00:00
Plack
Plack
概要
Starman は、PSGI/Plack に対応した Web サーバです。
PSGI/Plack については Plack を参照。
なお、同じようなサーバとして Starlet がありますが、こちらはよく知りません(/_\*)
Web 情報を見る限りでは、Starman よりもシンプルかつ高速であるようですが、HTTP1.1 非対応であったり、機能面では Starman の方が優れているようです。
インストール方法
CPAN から入手可能です。
% cpanm Starman
実行方法
単に
% starman
でも実行可能ですが、通常はホットデプロイ等に対応するため、 Starman を Server::Starter の配下で稼働させるのが良いでしょう。
% start_server -- starman --workers 32 xxx.psgi
daemontools で実行
Starman はデーモンとして稼働しますので、daemontools の管理下に置いておくとよいです。
run ファイルは以下のようになります。
#!/bin/sh exec 2>&1 export PERL5LIB=... # 必要であれば exec /usr/local/bin/setuidgid www \ # 実行ユーザー設定 start_server --port 11111 --interval=10 -- starman --workers 32 /path/to/xxx.psgi
Server::Starterは、HUPシグナルを受け取り後、一定時間の間にサーバが終了しないとサーバの立ち上げに成功したと見なしてします。
この一定時間はデフォルトで1秒なので、1秒以内にサーバの停止/起動が行われないと、挙動がおかしくなってしまいます。
私の環境ではほぼ100%停止に失敗する現象が発生したので、--interval
で大きめの値を指定しています。