Hi Henrik,
Henrik Nordstrom a écrit :
> On tis, 2007-10-09 at 17:47 +0200, Sylvain Viart wrote:
>
>> Hi,
>>
>> I use a redirector on an accel proxy config.
>>
>> url_rewrite_program /etc/squid/redirector.pl
>> url_rewrite_children 15
>> url_rewrite_concurrency 0
>> url_rewrite_host_header off
>>
>>
>> It seems, that the url used to store the requested url is the orginal
>> url, not the rewrited on.
>>
>
> The cache is using the rewritten URL.
>
here is some more detail:
the redirector script:
#--------------------------8< ------------------------------------
#!/usr/bin/perl
#
# request_URI client_IP/FQDN username HTTP_method
#
# url_rewrite_program
# URL <SP> client_ip "/" fqdn <SP> user <SP> method <SP> urlgroup <NL>
#
#
# access.log
# 1190984604.736 6 12.34.56.78 TCP_MISS/200 1752 GET
http://proxy-03.mydomain.com/thumb/100/default_woman.jpg - ROUNDROBI
# N_PARENT/php-03 image/jpeg
#
#
# !perl -n -e ' m@(http://[^ ]+)@; print "$1\n";' <
/var/log/squid/access.log
$|=1;
$filer = 'filer-01';
@filer_domain = qw /img.mydomain.com/;
$filer_host = join('|', @filer_domain);
# dumy domain name for canonical rewriting
$php = 'static-php';
$n = 0;
while (<>)
{
if(m[^http://$filer_host/] ||
m[^http://([^/]+)/(js/static_file|media|thumb)])
{
#$host = &get_filer;
s#http://[^/]+(:[0-9]+)?#http://$filer#;
# add urlgroup
s/^/!filer! /;
}
else
{
if($_ !~ /\.php/)
{
s#http://[^/]+(:[0-9]+)?#http://$php#;
}
# add urlgroup
s/^/!php! /;
}
print;
}
#--------------------------8< ------------------------------------
the redirector returns:
echo "http://mes-test2.mydomain.com/js/mailbox.js" | perl t.pl
!php! http://static-php/js/mailbox.js
echo "http://sometestagain.mydomain.com/js/mailbox.js" | perl t.pl
!php! http://static-php/js/mailbox.js
some store.log entries:
1191938682.998 SWAPOUT 00 000002E5 2AC12C498B97741871A11F0290E927C8 200
1191938682 1180514999 -1 application/x-javascript
418/418 GET http://mes-test.mydomain.com/js/mailbox.js
1191938722.433 SWAPOUT 00 000002E7 C61344FEBB15FC2C7D039A36A2EE552D 200
1191938722 1180514999 -1 application/x-javascript
418/418 GET http://mes-test2.mydomain.com/js/mailbox.js
for me it should be stored under
http://static-php/js/mailbox.js
associated acl and urlgroup:
# urlgroup matching acl from url_rewrite_program
acl static_doc urlgroup filer
acl php_doc urlgroup php
# filer server access rules
cache_peer_access filer-01 allow static_doc
cache_peer_access filer-01 deny all
# php server access exclusion for static_doc matched on the filer
#cache_peer_access php-01 deny static_doc
#cache_peer_access php-02 deny static_doc
#cache_peer_access php-03 deny static_doc
cache_peer_access php-04 deny static_doc
Could it be associated with the urlgroup which somewhat hides the rewriting?
> Sequence is approximately
>
> * Request accepted
> * http_access Access controls
> * URL rewriting, replacing Squid's idea of the URL
> * http_access2 Access controls
> * Cache lookup
> * Forwarding on cache miss
> * http_reply_access Reply access controls
>
>
> Because of this using "url_rewrite_host_header off" can be a very bad
> thing as it makes the requested URL sent to the web server differ from
> the cache URL, and can easily bite you..
>
it seems it bites, :-)
but that what I want, it worked with squid2.5 redirector without urlgroup.
* cache canonized URL
* peer: original URL.
would be simpler if it works like that for my config
More documentation on "url_rewrite_host_header off"?
Regards,
Sylvain.
Received on Wed Oct 10 2007 - 02:20:49 MDT
This archive was generated by hypermail pre-2.1.9 : Thu Nov 01 2007 - 13:00:01 MDT