Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

mod_proxy_balancerのstickysessionとPHPのセッションCookie

これはドハマリした。。。今更ながら。
まず、mod_proxy_balancer(mod_proxy)のドキュメントが


バランサーのスティッキーセッション名です。通常はこの値は JSESSIONID や PHPSESSIONID といったものになりますが、この値は バックエンドアプリケーションのサポートするセッションに依存します。

とあるので、てっきり「結構いけるじゃん」と思っていたら、

など結構怪しい雰囲気。まあ、これらのサイトに行き着くまでに、思いっきりはまってたわけですが。。。orz
イメージ的には完全にTomcatのjvmRouteですね。セッションCookieの値の最後に、routeパラメータで指定した値が「.」と共に付加されるなんて。。。セッションCookieの書き換えはできないし、sesshon_handlerがfileの場合、セッションIDに「.」が使えないので、mod_proxy_balancerを使う場合はNFSmemcachedなどでバランシングされるサーバの共有スペースを用意してやる方が良さそうです。
あとは、セッションIDの最後にrouteパラメータを付加するようなパッチを作るか。。。sessionとは別のextensionとして用意されると便利かも。