著作一覧 |
balancerをかます例や、nginxとUnicornの直結、Apache2-nginx-Unicorn(を同一マシン)、Apache2-UnicornをHTTPはすぐに見つかるのだが、Apache2とUnicornをUnix Domain socket直結の例が見つからなくて閉口して、えらく時間を食った。
というわけでメモ。
なお、Apacheは、2.4.10以上を使っている。
Unicornは、config/unicorn.rbにふつうに書く。
listen "/var/www/app/tmp/sockets/unicorn.sock"
Apacheのconfは仮想ホストなどは他のドキュメントを参照するとして(というのは、そのあたりは普通だからだ)、重要なのは
ProxyPass / "unix:///var/app/tmp/sockets/unicorn.sock|http://localhost/"
ProxyPassReverse / "unix:///var/app/tmp/sockets/unicorn.sock|http://localhsot/"
unixドメインは通常:の直後にパスを書くので、unix:/var...
とするが、mod_proxyがabsolute pathを要求するので、unix:///var...
と書く必要がある(ここで時間を食いまくる)。と思ったら、"unix:/var..."
でもちゃんと動くじゃん。すべてはパイプの後ろの問題だったのか……(unix:///でも動く)。
次に、Unix Domainソケットにトンネルさせるプロトコルをパイプでつないで指定する。ホスト名以下はダミーで記述が必要。
(ここで、fcgiだと思い込んで、さらに余分な時間を食った。というか、最初からhttp://で書いていれば///とか回り道をせずに済んだようだ。うー)
ジェズイットを見習え |