Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

i have one web server which is IIS that is back on varnish. there are more web sites on ISS. there are all web sites header's on IIS and all web sites publish from port 80. can i cache all web site by varnish like below code;

backend cacheWebSite{.host = ""; .port = "80";} sub vcl_recv {if ( == "") {set req.backend = CacheWebSites;} if ( == "") {set req.backend = CacheWebSites; } if ( == "") {set req.backend = CacheWebSites; }}

i can't test this code. that is just senario. thank you for your help already now.

share|improve this question

If you are caching many sites behind one varnish instance, and those sites exist on the same machine, you really don't need to do anything more than set:

backend default {
  .host = ""; 
  .port = "80";

As long as the backend answers properly, Varnish will handle this fine. You would use if blocks to alter the hostname being passed to the backend, or, if you needed to do load balancing, etc. In your case, specifying the default backend without any other VCL will do what you need.

share|improve this answer
okay thank you for yor help. so did i write if block right? – Kerberos Apr 2 '10 at 20:19
If you have 1 varnish server in front of your origin server, you don't need the if block. – deleted Apr 2 '10 at 21:05
acctually, we have 2 varnish servers (they are have internal ip) and we are making load balance with a public (real) ip by hardware. varnish servers make load balance two iis servers (they are have internal ip) too. iis servers are back side of varnish servers and we want to cache 5 web sites which are on iis with 2 varnish servers. domains are on iis like that;,,,, – Kerberos Apr 2 '10 at 21:32
If both varnish machines are pointing to one origin server, you don't need the if block. You only need the if blocks when you need to force a domain to use a different backend. Even with load balancing, as long as each origin server can serve all domains, you won't need any extra VCL. – deleted Apr 2 '10 at 21:42
okay, what does "backend" mean about mine structure? it is IIS server, is it? – Kerberos Apr 2 '10 at 22:11

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.