読者です 読者をやめる 読者になる 読者になる

Upstream Fair入りでRPMを作り直した

nginx

いままでnginxは、rpmforgeのSRPMに由来した自作RPMを使っていたけど、EPELのRPMを調べたところrpmforgeのものよりいいなぁと思う点があったので、EPELのSPECファイルを元にnginx 0.7系の自作RPMを作り直した。

EPELのnginxのいいところは、

  • /etc/init.d/nginxのエラー処理がrpmforgeのものより上品。
  • /etc/nginx/conf.dというディレクトリを用意してくれているところがRHELの流儀に従っている。
  • ngx_http_upstream_fair_moduleというサードパーティモジュールが組み込まれている。

っていう点かな。

最後のngx_http_upstream_fair_moduleとは、以下のページで説明されているモジュールのこと。

このモジュールを組み込んだnginxでは、リバースプロキシ・ロードバランサーとしてnginxを使うときに、設定に、

upstream backend {
    server server1;
    server server2;
    fair;
}

と"fair"を設定することで、もっとも応答時間が短いサーバーにリクエストを割り振ってくれるという。

まだ自分では使ってみたことがないが、ロードバランサーとして使うときにはこれが最も期待しているアルゴリズムだと思うし、ある程度信頼できるEPELがこれを組み込んでいるとあって、注目に値するモジュールではないかと思っている。

ちなみに、自分でRPMを作らずにEPELの0.6系のものを使うという選択肢もあるかもしれないが、現在の安定版を使いたいので、僕は自分でRPMを作っている。ただ、nginxは結構頻繁にSecurity Patchが出ていたりするので、その辺りも含めて責任を負える状況じゃないと自作RPMを使うのはお勧めしない。