Keep URL after rewriting
    Hauke 
    mailman at haukebruno.de
       
    Tue May  7 14:25:16 CEST 2013
    
    
  
Hi there,
i think I've got a fallacy at the moment.
After rewriting my URLs with Varnish I want to keep the origin URL given by a 
client.
We want to use our domain with some followed seperators, e.g. 
www.example.com/corporate should point to a specific webapp, 
www.example.com/service should point to another webapp and so on.
The backend servers listen to some internal names like corporate-
stag.example.local.
Here is my current Varnish config:
backend web1 {
  .host="10.7.138.21";
  .probe = {
                .url = "/";
                .interval = 5s;
                .timeout = 1 s;
                .window = 5;
                .threshold = 3;
  }
}
backend web2 {
  .host="10.7.136.61";
  .probe = { 
                .url = "/";
                .interval = 5s; 
                .timeout = 1 s;
                .window = 5;
                .threshold = 3;
  }
}
director example round-robin {
  {
    .backend = web1;
  }
  {
    .backend = web2;
  }
}
sub vcl_recv {
  set req.backend = example;
  set req.http.host = regsub(req.http.host, "^www\.", "");
  
  if (req.http.host ~ "example.com" && req.url ~ "^/corporate") {
    set req.http.host = "corporate-stag.example.local";
    set req.url = regsub(req.url, "corporate", "");
  }   
  
  if (req.http.host ~ "example.com" && req.url ~ "^/service") {
    set req.http.host = "service-stag.example.local";
    set req.url = regsub(req.url, "service", "");
  }
}
If I hit _www.example.com/corporate_ in my browser, I get the correct webapp. 
But if I navigate, the hyperlinks are all pointed to _corporate-
stag.example.local_ and they never pass Varnish again.
Where is my mistake?
-- 
Best regards,
Hauke
    
    
More information about the varnish-misc
mailing list