<html><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head><body text="#000000" bgcolor="#FFFFFF">Just yesterday I needed to
 do this. I host a friend's personal blog. Originally I had a line in my
 default.vcl that sent any queries for example.org/.info/.net to the 
nginx backend on the same machine.<br>
<br>
However, I like yours better. It is simpler in execution than mine.<br>
<br>
Old:<br>
<small><small><span style="font-family: monospace;">vcl_recv {</span><br
 style="font-family: monospace;">
    <span style="font-family: monospace;">    if (req.http.host == 
"(<a class="moz-txt-link-abbreviated" href="http://www.)example.\borg">www.)example.\borg</a>|info|net\b" ) {</span><br style="font-family: 
monospace;">
    <span style="font-family: monospace;">        set req.backend_hint =
 default;</span><br style="font-family: monospace;">
    <span style="font-family: monospace;">    }</span><br 
style="font-family: monospace;">
    <span style="font-family: monospace;">}</span></small></small><br>
<br>
This is a wordpress site mind you. He noticed this issue yesterday and 
sent me a text. He updated his site @ example.org/wordpress/wp-admin/. 
Someone he works with asked about his blog and he replied with 
"example.net." Well, when his coworker when to example.net, my friend's 
new post wasn't there. Surf to example.org and there sits the new post. 
So, this tells me that varnish is keeping a separate cache for each 
domain.tld of my friend's blog even though it's derived from the same WP
 install.<br>
<br>
New:<br>
<small><small><span style="font-family: monospace;">vcl_recv {</span><br
 style="font-family: monospace;">
    <span style="font-family: monospace;">    if (req.http.host == 
"(<a class="moz-txt-link-abbreviated" href="http://www.)example.org">www.)example.org</a>") {</span><br style="font-family: monospace;">
    <span style="font-family: monospace;">        set req.backend_hint =
 default;</span><br style="font-family: monospace;">
    <span style="font-family: monospace;">    }</span><br 
style="font-family: monospace;">
    <span style="font-family: monospace;">    if ( (req.http.host ~ 
"^(?i)www.example.net" || req.http.host ~ "^(?i)example.net" || 
req.http.host ~ "^(?i)www.example.info" || req.http.host ~ 
"^(?i)example.info") ) {</span><br style="font-family: monospace;">
    <span style="font-family: monospace;">        return (synth(750, 
""));</span><br style="font-family: monospace;">
    <span style="font-family: monospace;">    }</span><br 
style="font-family: monospace;">
    <span style="font-family: monospace;">}</span><br 
style="font-family: monospace;">
    <br style="font-family: monospace;">
    <span style="font-family: monospace;">sub vcl_synth {</span><br 
style="font-family: monospace;">
    <span style="font-family: monospace;">    if (resp.status == 750) {</span><br
 style="font-family: monospace;">
    <span style="font-family: monospace;">        set resp.status = 301;</span><br
 style="font-family: monospace;">
    <span style="font-family: monospace;">        set resp.http.Location
 = <a class="moz-txt-link-rfc2396E" href="http://www.example.org">"http://www.example.org"</a> + req.url;</span><br style="font-family: 
monospace;">
    <span style="font-family: monospace;">        return(deliver);</span><br
 style="font-family: monospace;">
    <span style="font-family: monospace;">    }</span><br 
style="font-family: monospace;">
    <span style="font-family: monospace;">}</span></small></small><br>
<br>
I tested using curl -I and chrome and both worked wonderfully.<br>
<br>
I'm going to try out your example and see what I get. Thank you <br>
<br>
<br>
<br>
<div class="moz-signature">-- <br>
<div>Sent from <a 
href="https://www.postbox-inc.com/?utm_source=email&utm_medium=siglink&utm_campaign=reach"><span
 style="color: rgb(51, 102, 153);">Postbox</span></a></div></div>
<span>Paul A. Procacci wrote:</span><br>
<blockquote cite="mid:20160226194508.GE68867@workvm.myhome" type="cite">
  <pre wrap="">On Fri, Feb 26, 2016 at 12:01:57PM +0200, <a class="moz-txt-link-abbreviated" href="mailto:georgi.int@gmail.com">georgi.int@gmail.com</a> wrote:
</pre>
  <blockquote type="cite"><pre wrap="">   Hello,
   I would like to ask your for help after explaining the case and the
   infrastructure for this domain. In the varnish configuration I restrict
   some types of files to be accessed and downloaded and if some customer
   wants to use this functionality I configure subdomain on it's domain on
   nginx where these restrictions are not present. Although, my customer
   do not want to change the links to the new subdomains (which rely on
   nginx) in it's application and I want to redirect all old urls
   (domain.com/somedir/download) to the new one - download.thedomain.com,
   so if someone open the old url it's redirected to the subdomain on
   nginx and the content to be loaded from nginx, not varnish (as the way
   cpanel domain forwarder works).
   The problem is that when I followed and configured the varnish official
   documentation url guide it just change the url in varnishlog, but the
   content is again openef from varnish, not nginx, also the url in the
   browser is not rewritten.
   My questions are 1) is it possible and if yes how, but if not 2) what
   workaround can I use?
   Thank you in advance. I will wait for you reply.
</pre></blockquote>
  <pre wrap=""><!---->
Hello,

It'd be helpful if you shared the parts of your configuration which perform
the rewriting of the url.

That aside, in order for the browser to request a differnet resource requires
a 301 (or similar) to be delivered from varnish or nginx.  Here's an example:

#####################################################
sub vcl_recv
{
        if(req.http.host ~ "(?i)^nothere\.com$"){
          if(req.url ~ "(i?)^/file\.jpg$") {
                return(synth(750, <a class="moz-txt-link-rfc2396E" href="http://here.com">"http://here.com"</a> + req.url));
          }
        }
}

sub vcl_synth
{
        if(resp.status == 750){
                set resp.http.Location = resp.reason;
                set resp.status = 301;
                return (deliver);
        }
}
#####################################################

Hope this helps.

~Paul

_______________________________________________
varnish-misc mailing list
<a class="moz-txt-link-abbreviated" href="mailto:varnish-misc@varnish-cache.org">varnish-misc@varnish-cache.org</a>
<a class="moz-txt-link-freetext" href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc">https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc</a>
</pre>
</blockquote>
<br>
</body></html>