Thank you about your reply. I am using varnish 3 and tried the following configuration:

if (req.http.host ~ "thedomain\.com" && req.url~ "^/disclib/download/") { set req.backend = filedownload; set req.http.connection = "close"; return (pipe); }

as I defined befor the backend filedownload, but the result is service unavailable.

Any other suggestions?


On 02/26/2016 09:45 PM, Paul A. Procacci wrote:
On Fri, Feb 26, 2016 at 12:01:57PM +0200, [email protected] wrote:
    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.
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, "http://here.com"; + 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
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to