くりーむわーかー

プログラムとか。作ってて ・試しててハマった事など。誰かのお役に立てば幸いかと。 その他、いろいろエトセトラ。。。

2016年09月

ロードバランサ cookieが消える その3

コレの続き。

保護モードにすれば、Cookieを付けてGetリクエスト出すよってMicrosoftのサポートに書いてあったのでやってみた。

やった結果。↓

①保護モードなし⇒cookie入ってない。

②保護モードあり⇒cookie入ってる。

サポート通りでした。とりあえず、保護モードつければロードバランサが急に別のサーバに飛ばすっていう動きはなくなった模様。

まだ、あんまり検証してないけど、割と大丈夫そう。。。

2016/10/23追記
管理者権限で実行したり、UACが無効になってると保護モードが効かないっぽ。

続き。

ロードバランサ cookieが消える その2

以前、ロードバランサ 突然別のサーバにつながる っていうのを書いた。これの続き。

別のサーバに突然飛ばされてるのは分かるんだけど、いかんせん原因がわからないので、パケットキャプチャして何が起きてるのか調べた。

そしたら、裏でこんな話になってましたとさ。

① サイトを操作中に裏で「GET /browserconfig.xml」っていうリクエストが飛んでる。
② ①のリクエストにCookieが何も設定されてない。
③ ①のレスポンスでCookieがないからロードバランサがサーバに振り分けてセッションCookieを採番。
④ 新しいCookieでつなぎにいって別のサーバに飛ぶ。

browserconfig.xmlってなんだ。。。。

コレらしい。要するに、Win8.1以降のピン留めに表示する画像とかもろもろをサイト側で指定出来るようにするための仕組みの模様。

ふーむー。機能としては素晴らしいんだろーけど、cookie付けないのダメじゃね?と思ったら、Microsoftのサポートにこんなエントリがあった。

信頼済みかイントラネットになってない奴はセッションCookieを飛ばさない。ということらしい。。。今度はコレを見てみましょう。

信頼済み・イントラネットじゃなくて保護モードかどうからし。 続き

ロードバランサ 突然別のサーバにつながる

最近ロードバランサがらみで一悶着あった。

最近のロードバランサにはつないで来たIPで振り分けるパターンと クッキーを設定して振り分けるパターンがあるらしい。

基本的なロードバランサの動きとして個人的に認識してるのは、 仮想代表アドレスに特定の端末からつないだら、少なくともその日は そのサーバにしかつながなくなるという仕様。IPでラウンドロビンしてる場合ってことかな。

ロードバランサの設定的に、ロードバランサがつないできたブラウザにCookieでキーを設定させて そのキーで振り分けるってやつがある。このやり方だと、ブラウザを起動し直した場合は、 また、ロードバランシングされて別のサーバにつながる可能性があるという形。

でだ、困ったことにWindows8+IE11の環境だと、唐突にIE11のCookieが消えるという事象が発生するもよう。 なので、Webアプリを普通に使っている場合に唐突にサーバが切り替わってセッションなどが引き継がれず動作が不安定になる。

この事象を確認したい場合は、ブラウザの開発ツール(F12キーを押す)でネットワークの内容を取得して、 詳細タブのCookieを確認する。

で、Cookieをひたすら確認して、落ちた画面で使ってるCookieの値が唐突に変わったり無くなったりしたら FAと考えていいかもしれない。

ロードバランサやってるベンダがどこかにもよるけど、IPでロードバランシングしてもらうように設定を変える必要があると思う。

2016/9/10追記

もうちょっと調べてみたら、RFC2965で規定されてるCookieの↓の話なのかもしれない。IEはこれの最低値に準拠してるらし。

少なくとも300個のCookie
少なくとも4096バイトのCookie
ホストかドメインで20個のCookie

Microsoft的には⇒で書いてあった。https://support.microsoft.com/ja-jp/kb/306070

っていうか仕様の不具合なんじゃ・・・。まー、確かに無尽蔵にCookie使うのもどうかと思うけども。だいぶ昔のRFCっぽいし、ロードバランサがCookie利用するなんて考慮してなかったんだろうし。

とりあえず、IPでラウンドロビンしてもらうようにするしかなかね。。。

この話の続き。

問合せ