HAProxyを入れてみることにした。
websocketを試すために、nginxを入れたけど、既存のapache環境もひつようで、
振り分けの設定が簡単そうなHAProxyを選択。
nginxがダメということではなく、単にHAProxyとwebsocketの組み合わせに興味が。。。
(nginxのwebsocket対応が開発版のみ、というので賛同が得られなかったこともある)
というわけで、
HAProxyの後ろで、apache, nginx, node が動いている状況です。
nodeはsocket.io用。 nginxはwebsocket用に入れたけど、しばらく宙ぶらりんのアイドル状態。
HAProxy って何ですか?
「The Reliable, High Performance TCP/HTTP Load Balancer」です。
インストールはrpmを利用 (epelリポジトリ)
yum install --enablerepo=epel haproxy
スタティックなファイルなどはパス指定して、専用のサーバーへ
ドメインの振り分けは hdr_dom(host) でACLを定義する。
HAProxy
Configuration Manual
7. Using ACLs and pattern extraction
振り分け条件はいろいろな書き方があって、かなり幅が広がりそう。
サブドメイン単位でなく、URLの文字列や、パスでも振り分けられる。
う~ん、凄い。
既存のapache環境もポートを変更しただけで、いい感じに動いてる。
ただ、パフォーマンスの観点から、ssl、keepaliveは未対応らしい。
websocket環境はまだまだですね。
awsのelbもnginxも。そもそもクライアントサイドでは、androidブラウザが未対応とはがっかり。
でも、近いうちにやってくるwebsocket革命が!!!