Starman

最終更新日時:2012-01-25 00:00:00
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で大きめの値を指定しています。

お問い合わせは 掲示板 にて。