<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 9, 2016 at 11:33 AM, Amos Jeffries <span dir="ltr"><<a href="mailto:squid3@treenet.co.nz" target="_blank">squid3@treenet.co.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">On 9/03/2016 4:32 a.m., Tomas Mozes wrote:<br>
> Hello,<br>
> I would like to create a file distribution cache with squid. There is an<br>
> origin server that has some fixed limited capacity and I'd like to place a<br>
> few servers close to clients, in a mesh configuration (reverse proxy).<br>
><br>
> http_port 80 accel<br>
> cache_peer IP_ORIGIN parent 80 0 default no-query no-digest<br>
> no-netdb-exchange<br>
> cache_peer IP_SIBLING1 sibling 3128 3130<br>
> cache_peer IP_SIBLING2 sibling 3128 3130<br>
> ...<br>
><br>
<br>
</span>Okay so far.<br>
<span class=""><br>
> Now the question is - is it possible to specify a mapping between the<br>
> hostname used on the cache vs the origin hostname? For example the origin<br>
> is reachable via <a href="http://storage.example.com" rel="noreferrer" target="_blank">storage.example.com</a> and I'd like the cache to be<br>
> accesssible via <a href="http://cdn.example.com" rel="noreferrer" target="_blank">cdn.example.com</a>. So when a request comes to <a href="http://cdn.example.com" rel="noreferrer" target="_blank">cdn.example.com</a>,<br>
> it goes to the cache and it requests files from <a href="http://storage.example.com" rel="noreferrer" target="_blank">storage.example.com</a> - map<br>
> <a href="http://cdn.example.com" rel="noreferrer" target="_blank">cdn.example.com</a> -> <a href="http://storage.example.com" rel="noreferrer" target="_blank">storage.example.com</a>. I failed to find such an option for<br>
> cache_peer.<br>
<br>
<br>
</span>I'm not sure I follow, but it seems the answer is that what you are<br>
looking for is:  "cache_peer" itself *is* the mapping.<br>
<br>
 # the mapping to send requests to <a href="http://storage.example.com" rel="noreferrer" target="_blank">storage.example.com</a><br>
 cache_peer <a href="http://storage.example.com" rel="noreferrer" target="_blank">storage.example.com</a> 80 0 originserver name=SS<br>
<br>
 # to decide _which_ requests go to <a href="http://storage.example.com" rel="noreferrer" target="_blank">storage.example.com</a><br>
 acl CDN dstdomain <a href="http://cdn.example.com" rel="noreferrer" target="_blank">cdn.example.com</a><br>
 cache_peer_access SS allow CDN<br>
<br>
<br>
There are two hostnames and a domain name involved with<br>
CDN/accel/reverse-proxy setups. The three things are not necessarily the<br>
same:<br>
<br>
 * hostname_1 - the proxy server hostname<br>
 * hostname_2 - the origin server hostname<br>
 * domain  - the public FQDN the client is requesting<br>
<br>
The two hostname are private if you wish. The domain is public with DNS<br>
records pointing at the proxy(s).<br>
<br>
Amos<br>
<br>
_______________________________________________<br>
squid-users mailing list<br>
<a href="mailto:squid-users@lists.squid-cache.org">squid-users@lists.squid-cache.org</a><br>
<a href="http://lists.squid-cache.org/listinfo/squid-users" rel="noreferrer" target="_blank">http://lists.squid-cache.org/listinfo/squid-users</a></blockquote><div><br><br>Hello Amos,<br>the origin server has multiple virtual hosts configured, so if it does not receive the Host: header by which it is configured (like <a href="http://storage.example.com">storage.example.com</a>), it will emit a 404.<br><br>Currently, this does the following. The clients requests:<br>GET /test.txt HTTP/1.1<br>Host: <a href="http://cdn.example.com">cdn.example.com</a><br><br>This comes to squid, it will then send the same request to the origin:<br>GET <a href="http://cdn.example.com/test.txt">http://cdn.example.com/test.txt</a> HTTP/1.1<br>Host: <a href="http://cdn.example.com">cdn.example.com</a><br><br>The result is a 404. I would need squid to alter the Host: to <a href="http://storage.example.com">storage.example.com</a>. Is that possible?<br><br>What I can do is to add a <a href="http://cdn.example.com">cdn.example.com</a> server alias to the origin, then it works of course.<br><br>Thanks,<br>Tomas <br></div></div><br></div></div>