Re: [squid-users] Multiple different parents and no default

From: Markus Meyer <markus.meyer_at_koeln.de>
Date: Wed, 29 Apr 2009 13:13:12 +0200

Chris Robertson schrieb:
>

Hi Chris,

> What do you *want* to do?

Yeah right. I'm confused. So I try it again. My Squid is "myproxy" and
is an accelerator proxy for two webservers "jallah.image" and
"kalimba.image". Both webservers have completely different content and I
need to find a way to distinguish the client-requests.

I can tell the clinets what to request. Content from "jallah.image"
comes via http://myproxy/jallah_img/whatever.jpg and content for
"kalimba.image" comes via http://myproxy/kalimba_img/blubba.jpg. So I
could catch those with ACLs and url_regex.
But when my proxy forwards the request as they are it won't work. So I
have to rewrite the URL from http://myproxy/kalimba_img/blubba.jpg to
http://myproxy/blubba.jpg.

I tried this with the following configuration:
cache_peer jallah.image parent 80 0 no-query no-digest originserver
cache_peer kalimba.image parent 80 0 no-query no-digest originserver
# jallah ACL
acl jallah urlpath_regex ^/jallah_img
cache_peer_access jallah.image allow jallah
cache_peer_access kalimba.image deny jallah
# kalimba ACL
acl kalimba urlpath_regex ^/kalimba_img
cache_peer_access kalimba.image allow kalimba
cache_peer_access jallah.image deny kalimba
url_rewrite_program /rewrite.pl

Here code of rewrite.pl:
#!/usr/bin/perl
$|=1;
while (<>) {
        # jallah
        s@/jallah_img@@;
        # kalimba
        s@/kalimba_img@@;
        print;
}

But this doesn't work because I think that the url_rewrite_program
program runs before the ACLs. With the above setup I tested with
requests for both webservers, http://myproxy/kalimba_img/blubba.jpg and
http://myproxy/jallah_img/whatever.jpg, and "myproxy" always asked the
first listed peer "jallah.image".

>
> Go direct?
>
> acl jallah url_regex ^jallah_img\/
> acl kalimba url_regex ^kalimba_img\/
> always_direct allow !jallah !kalimba

I'm not sure since I don't really understand what this is doing.

> Pick a (pseudo) random parent for requests that DON'T match those terms
> in the URL?
>

This won't work since the content on both webservers is different.

> Use one parent proxy for all requests that DON'T match match those terms
> in the URL?

There is no parent proxy. I'm just trying to build a accelerator proxy
for external static servers over which I have no control.

>> I hope I could more or less make clear my issue.
>>
>
> More or less... :o)

Hope this time I did a better job in explaining...

Cheers,
       Markus

Received on Wed Apr 29 2009 - 11:13:31 MDT

This archive was generated by hypermail 2.2.0 : Thu Apr 30 2009 - 12:00:03 MDT