飯塚 俊光
iizuk****@cosmo*****
2007年 5月 21日 (月) 15:53:30 JST
はじめまして、飯塚と申します。 サービス開始から半年ほど、ダイレクトルーティング方式を 使用していましたが別ネットワークに所属するWebサーバの 増設行う為、IPトンネリング方式に変更を行いました。 基本的に問題なく動作しているのですが、ごく一部のユーザの HTTPリクエストでContent-Lengthの値とメッセージボディの 値が一致しないという現象が起こりました。 現在情報を収集中なのですが、分かってきた傾向としては以下のものがあります。 ・同じユーザでも、エラーとなるページとならないページが存在する。 ・エラーとなるページでは、何度もエラーが再現する。 ・エラーとならないページは、エラーとなるページと比較して、 Requestにて送信されるデータ量が少ない特徴。 ・Ultramonkey経由ではなく、直接Webサーバにアクセスした場合は 問題は発生しない。 ・ユーザのブラウザは、IE/Firefoxの両方で発生する。 ・3台あるWebサーバのうち、全てのサーバで同様のエラーが発生している。 ・HTTP、HTTPSの両方でエラーは発生する。 ・バランシングの方法として、Round-Robin / Source Hashing の 2つを試してみたが、両方ともエラーは発生。 ・エラーとなった時の状態として、bodyの中身が空であることが多い。 ・共通して以下のようなHTTPリクエストヘッダーになっている。 protocol : HTTP/1.1 connection : Keep-Alive catche-control : no-cache content-type : multipart/form-data そういった現象が起こる事例など、何かしら知っている情報がありましたら、ご教授くださると大変助かります。 下記に現在のシステム構成とldirectord.confの設定を記述しておきます。 ■システム構成 ロードバランサ:UltraMonkey3(OS:RHEL3)×2台(稼動系と待機系) | リアルサーバ:Apche1系(OS:RHEL3)×3台 ※ロードバランサ2台とリアルサーバ2台は同一ネットワーク リアルサーバ一台が別ネットワーク ■ldirectord.conf virtual=xxx.xxx.xxx.xxx:80 fallback=xxx.xxx.xxx.xxx:80 real=xxx.xxx.xxx.xxx:80 ipip 10000 real=xxx.xxx.xxx.xxx:80 ipip 10000 real=xxx.xxx.xxx.xxx:80 ipip 10000 service=http request="ldirectord/index.html" receive="alive" scheduler=sh protocol=tcp checktype=negotiate -------------- next part -------------- HTMLの添付ファイルを保管しました... ダウンロード