It's OK now.Thanks a lot~
2010-4-8 12:15, Amos Jeffries wrote:
On Thu, 08 Apr 2010 11:24:27 +0800, Gemmy<chenryn@xxxxxxx> wrote:
Hi~
I have a squid running url_rewrite_program, but when I using
"url_rewrite_concurrency" in squid.conf, rewrite failed. The access.log
like that:
1270692467.083 0 127.0.0.1 TCP_MEM_HIT/200 29514 GET
http://drag.g1d.net/%D3%C2%B4%B3%B6%E1%C3%FC%B5%BA.mp40drag?__0.9956639306
- NONE/- text/xml "-" "Wget/1.10.2 (Red Hat modified)"
1270692470.083 32 127.0.0.1 TCP_MISS/200 29507 GET
http://drag.g1d.net/%D3%C2%B4%B3%B6%E1%C3%FC%B5%BA.mp40drag?__0.9956639
- DIRECT/119.167.214.28 text/xml "-" "Wget/1.10.2 (Red Hat modified)"
1270692476.604 32 127.0.0.1 TCP_MISS/200 29507 GET
http://drag.g1d.net/%D3%C2%B4%B3%B6%E1%C3%FC%B5%BA.mp40drag?__0.99 -
DIRECT/119.167.214.28 text/xml "-" "Wget/1.10.2 (Red Hat modified)"
My squid.conf and rewrite_program as follows:
acl rewriteurl url_regex -i ^http://drag.g1d.net/.*\.mp40drag\?
url_rewrite_access deny !rewriteurl
url_rewrite_program /home/squid/etc/redirect.pl
url_rewrite_children 5
url_rewrite_concurrency 5
#!/usr/bin/perl -wl
use strict;
$|=1;
while (<>)
{
my ($uri,$client,$ident,$method) = ( );
($uri, $client, $ident, $method) = split;
if ($uri =~m#^(.*)(\?.*)#i)
{
my ($url,$strings) = ($1,$2);
print "$url\n";
}
else
{
print "$uri\n";
}
}
Is anything wrong?
Yes. Concurrency is a slightly different helper protocol. Your helper does
not understand it.
http://wiki.squid-cache.org/Features/Redirectors#How_do_I_make_it_concurrent.3F
Amos