Apache2.2.17

Apache2.2.17がリリースされていました。どんな変更点があるのかとCHANGESを見ていると、こんな新機能が。

  *) Proxy balancer: support setting error status according to HTTP response
     code from a backend.  PR 48939.  [Daniel Ruggeri <DRuggeri primary.net>]

おぅ、これはうれしい。
いままでApacheのmod_proxyでのbalancerだと、HTTPでつながらなくなるとバックエンドを切り離していました。バックエンドが500(Internal Server Error)とか、503とかかえしてきたときは、HTTP的にはつながっていると判断してそのままフロントエンドへエラーをかえしていたんですね。

すでにパッチとしてはでていたみたい(48939ってのがそう) で、こんバージョンから本体へ組み込まれたようです。
こんな風に書くみたいです。

<Proxy balancer://cluster/>
      BalancerMember http://192.168.130.1:8080 timeout=9 retry=60
      BalancerMember http://192.168.130.1:9080 timeout=9 retry=60
      BalancerMember http://192.168.130.1:18080 timeout=9 retry=60
      ProxySet lbmethod=byrequests nofailover=Off failonstatus=500,503
 (略)

failonstatusにHTTPのコードを列挙。ちょっと賢くなった。