TATEISHI Katsuyuki
tatei****@oss*****
2010年 2月 3日 (水) 16:07:10 JST
立石です。 稲垣 <tadas****@gmail*****>-san wrote: >> # 下の例でいえば 192.168.1.0/24 に統一し、192.168.254.0/24 の >> # アドレスは撤廃。Web0, Web1 のデフォルトルータは >> # 192.168.1.2に設定する >> > この構成で検証しましたが、こちらは504エラーはでないですが > Webページが表示されるまでにかなりの時間がかかります。 Proxyの諦めが良い場合は504を返すこともありそうですね。 「結果として正常だけど異常なほど時間がかかる」という場合は DNSがらみであることが多いように思います。 リアルサーバから何らかのDNSの逆引きなどで時間がかかっているとか。 例えばリアルサーバの web サーバが Apache だとしたら、 httpd.conf のなかの Deny from ... のようなアクセス制限におい て IP アドレス表現ではなく、ドメイン名で制限をかけているとか、 アクセスログに IP アドレスではなくてホスト名を出すようにして いる・・・などの設定をしていると、クライアントのIPアドレスを 逆引きしようとして、DNSに問い合わせを出すはずです。 このとき DNS サーバは設定(/etc/resolv.conf等)されているけど実 際には DNS サーバに到達できないような状況だったりすると、名前 解決に死ぬほど時間がかかってもおかしくない気がします。 Web0, Web1からDNSとのやりとりを確認してみてはいかがでしょう か?またはリアルサーバの /etc/nsswitch.conf (OSによって違いま すが) 等の名前解決手段の設定で dns を無効にしてしまうとか。 > また、UM、リアルでtcpdumpをとってみましが、 > 一回のコネクションごとに送信元IPからのパケットが1号機、2号機に > 流れているようですが正しい動きでしょうか? これだけではなんとも・・・ 「一回のコネクション」の「コネクション」が何をさしているのか、 (TCPコネクションですか?でもそれだと宛先IPアドレス、ポート番号 とかも同一でないとそもそも1回のコネクションと判断できません し・・・) とか「1号機、2号機に流れているよう」と判断した根拠 となる情報を示していただかないと答えるのは難しいです。 例えば「コネクション」が単に「一般的なWebブラウザから1回アク セスした」のことだとすると、 * リアルサーバのwebサーバで (HTTPの) KeepAlive off、つまり http リクエスト一回毎に 1 tcp コネクションがはられる状態で、 * ipvs(UM) でpersistent は設定しておらず、 * クライアントがアクセスするページには <IMG SRC="..."> など のブラウザが自動的に複数回アクセスするようなタグが書いて あり、 * 普通のブラウザでアクセスした とか言う状況であれば、1回ブラウザで表示しただけでも複数リクエ ストが発生していてそれぞれ別のリアルサーバに振られることもあ るでしょうから、「送信元IPからのパケット」が両方のリアルサー バに届いていてもおかしくはない気がしますし。 -- TATEISHI Katsuyuki <tatei****@oss*****>