ひとりごと

新しい記事:[1009]  古い記事:[1007] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2003/11/14 (金)

・ Google toolbar と squid の微妙な関係

数日前からWWWをうろうろしているとよく固まるのです。ブラウザが固まるのではなくて、ネットワークが固まって流れないようになります。Bフレッツの調子が悪い? と疑ったりもしますが、おうちサーバからいろいろ調べてみる限りは異常は見られません。それで、いつも使っている squid proxy cache を切ってみると、問題なく流れるようになるんですねー。

今まで特に問題なかったのに、なんで急に squid を通すとおかしくなるようになっちゃったのだろう? としばらく謎だったのですが、squidのアクセスログを眺めていると謎が解けました。私の使っているブラウザにはポップアップ広告除去のために Google Toolbar が入っているのですが、これにくっついてるPageRank表示機能を機能させるために、ページを移動するたびに

GET http://216.239.39.104/search? なんたらかんたら
のようなリクエストを発行するようなのです。それで、たまたまコケてただけと思うのですが、問題が起こっているときにこのIPアドレスにpingをうってみると反応がないのです(^^;)。もちろん www.google.com と同じでIPアドレスはぐるぐる回っているのですが、これが逆に問題。squidでは『一定数』のリクエストに対して同時に処理しようと試みるのですが、反応がない場合は数秒~十数秒間待ちつづけてしまいます。で、この間に辛抱たまらず他のページをうろうろ移動しようとすると、GoogleToolbarのリクエストだけで『一定数』に達してしまい、他のリクエストを処理できない→固まる、ということになってしまうようです。

ということで、対策。要はsquidを通さなければうまくいくので、proxy自動設定に除外リストを加えてみました。

function FindProxyForURL(url,host)
{

    if (!isInNet(myIpAddress(),"10.0.0.0","255.255.255.0")) {
        return "DIRECT";
    }

    if (isPlainHostName(host)
        || dnsDomainIs(host,"toriyu.dd.que.ne.jp")
        || 略
        || url.match(/search\?/)
    ) {
        return "DIRECT";
    } else {
        return "PROXY 10.0.0.1:3128; DIRECT";
    }
}

これで多い日も安心。どうせ動的なページではsquidは役に立たないのだから、 url.match(/\?/) としてしまっても良いかもしれません。

[つっこみ]

新しい記事:[1009]  古い記事:[1007] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)