2011年6月30日木曜日

StoreUrlRewrite太郎

squid2.7で使える機能だお。

squidが画像をcacheするとき、同じ画像なんだけどドメインがちがう場合
同じcacheとしては扱ってくれないみたい。
(URLで一意で認識してるぽい・・ソース読んでないからわかんね)

なので、squid側でリライトして、同じ画像としてcacheできるように仕込んでみたお。
yattarou.jpでアクセスがきた画像をyattarou01の画像としてリライト。


#squid.confに下記を追加
acl store_rewrite_list dstdomain yattarou.jp origin.yattarou01.jp
storeurl_access allow store_rewrite_list
storeurl_rewrite_program /usr/local/sbin/yatta_rewite.pl
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

refresh_pattern -i (/cgi-bin/|\?) 0 0% 0

#スクリプト作成
vim /usr/local/sbin/yatta_rewite.pl
#!/usr/bin/perl

$| = 1;
while (<>) {
chomp;

@X = split;
$x = $X[0];
$_ = $X[1];

# print STDERR $_ . "\n";
if (m/yattarou\.jp(.*?)\/(.*?) /) {
print "http://yattarou01.jp" . $2 . ".SQUIDINTERNAL/" . $3 . "\n";
} else {
print $_ . "\n";
}
}

#squid再起動
/etc/init.d/squid stop
/etc/init.d/squid start

0 件のコメント: