mod_proxy_balancerのstickysessionとPHPのセッションCookie
これはドハマリした。。。今更ながら。
まず、mod_proxy_balancer(mod_proxy)のドキュメントが
とあるので、てっきり「結構いけるじゃん」と思っていたら、
バランサーのスティッキーセッション名です。通常はこの値は JSESSIONID や PHPSESSIONID といったものになりますが、この値は バックエンドアプリケーションのサポートするセッションに依存します。
- YappoLogs: Apache 2.2.0 のロードバランス機能(mod_proxy_balancer)を使いこなす
- mod_proxy_balancerの設定、特にstickysessionについて
など結構怪しい雰囲気。まあ、これらのサイトに行き着くまでに、思いっきりはまってたわけですが。。。orz
イメージ的には完全にTomcatのjvmRouteですね。セッションCookieの値の最後に、routeパラメータで指定した値が「.」と共に付加されるなんて。。。セッションCookieの書き換えはできないし、sesshon_handlerがfileの場合、セッションIDに「.」が使えないので、mod_proxy_balancerを使う場合はNFSやmemcachedなどでバランシングされるサーバの共有スペースを用意してやる方が良さそうです。
あとは、セッションIDの最後にrouteパラメータを付加するようなパッチを作るか。。。sessionとは別のextensionとして用意されると便利かも。