tokuhirom's Blog

h2o の fastcgi サポートで Plack::Handler::FCGI を動かす

h2o で PHP を FCGI で動かすという話題が最近見かけますが、もちろん h2o+FCGI+Perl も快適に動作します。 具体的には以下のように書けばよろしい。

listen: 9090
hosts:
  default:
    paths:
      /:
        file.dir: /path/to/htdocs/
        fastcgi.spawn: "exec /opt/perl-5.18/bin/plackup -s FCGI --nproc 10 /path/to/app/"

簡単すぎて、とくに解説することがないです。

h2o+FCGI で運用した場合のメリットとして、Starlet 等の application server を立ち上げる場合と異なり、application server のプロセスを daemon tools や systemctl 等で管理する必要がないというメリットがある。

一方で、TCP+HTTP/1.1 でやっていれば通信を見るのが簡単なのに、STDIN で通信する FCGI では通信経路を観測するのが難しいので、そのへんをどう見るか、というところでしょうか。