2012年11月6日火曜日

HAProxyはじめました

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革命が!!!

2012年11月2日金曜日

nginxインストール (rpm)

nginx どうなのよ?
「エンジンエックス」って読むけどOKですか?

nginx.org でrpmを用意してくれている。


では、リポジトリをついか。

/etc/yum.repos.d/nginx.repo を作成
-----------------------------------------------------------
[nginx]
name=nginx repo
# stable版
baseurl=http://nginx.org/packages/centos/6/$basearch/
# 開発版
baseurl=http://nginx.org/packages/mainline/centos/6/$basearch/
gpgcheck=0
enabled=1
-----------------------------------------------------------
stable or mainline(開発版) のどちらかを選択し、

とりあえず、websocketを試したいので、開発版を選択。

yum install nginx
で、無事インストールできた。


自分のドメインを追加するとエラーが出るので、
/etc/nginx/nginx.conf に
server_names_hash_bucket_size  64;
を追加。 (今のところ何なのかはわかってない)

あと、デフォルトで、
uwsgi_params とかfastcgi_params が用意されてるので、
そのうち使ってみる。