2001年11月29日(木)


redirector_program on squid

PC : www.gentei.org に繋ぐときは、duke.gentei.org に繋いだ方が速いらしいです。 bookmark を登録し直すのは面倒なので、squid でやってくれないか探しました。 squid.conf には、release-notes を見ろ、と書いてあります。そんなもの ありません。検索しました。

資料少ないです。結局、squid 公式サイト からたどっていきました。

http://squid.visolve.com/squid24s1/glossary.htm#external_programs

sed で書こうと思っていたのですが、

a 'redirector' process that returns either a new URL, or a blank line to
indicate no change.

Note that the redirector program can not use buffered I/O. Squid writes.

の方法が分からなかったので、perl にしました。とりあえずは、動かし方が 分からないとどうしようもないですし。

# cat /usr/local/etc/squid/red.pl
#!/usr/bin/perl

$| = 1;

while(<>){
    chomp;
    if(s#http://www\.gentei\.org#http://duke\.gentei\.org#){
        print "$_\n";
    }else{
        print "\n";
    }
}

てのを作って、squid.conf に

redirect_program /usr/local/etc/squid/red.pl

を追加します。kill -HUP `cat /var/run/squid.pid` で再読み込み。あぁ、 red.pl が 5つも起動しました。squid って、memory を食いまくりです。

ま、Netscape Navigator で見ます。あれ? Netscape Navigator の URL は「www」 のままなのですが、中身は「duke」のようです。client からは、URL では判断が できないようになっているようです。cookie を登録し直す必要がなくて便利です。

んで、script をどうしましょうか。redirect したい URL が 5つくらいになると、 もう面倒です。遅いですし。個人では redirect したい URL なんて、そんなに 出てこないのでいいですか。



generated by makediary-2.11