I'm trying to setup Varnish to process ESI includes on a local environment.
I am running varnish in a virtual machine and the content is running on the host machine.
I have two files "index.html" and "test.html". These are both stored in a folder called "esi" in the docroot of an apache server.
index.html
<h1>It Works!</h1>
<esi:include src="test.html" />
test.html
<p>ESI HAS BEEN INCLUDED</p>
Varnish is running on the virtual machine on port 8000. So I access it here: http://192.168.56.101:8000/esi/
in /etc/varnish/default.vcl on the virtual machine I have added the followin config to the bottom of the file:
sub vcl_fetch {
set beresp.do_esi = true; /* Do ESI processing */
set beresp.ttl = 24 h; /* Sets the TTL on the HTML above */
}
With the idea that it should process ESI on ALL requests (Dont care if its bad practice just trying to get this thing to work :))
The result when I load http://192.168.56.101:8000/esi/ is:
<h1>It Works!</h1>
<esi:include src="test.html" />
ie. the ESI is shown in the markup, it is not being processed.
I have checked the Varnish log, however there are no errors in there and nothing related to ESIs.
Can anyone see what I am doing wrong here? Let me know if more information is needed.. thanks