I have a content page that uses an esi:include tag to include a module, so let's say
/content.html
contains
<esi:include src="/_esi/module.html">
Both urls send cache-conttrol headers in their response. For /content.html it's
Cache-Control: public, max-age=86400
and for /_esi/module.html it's
Cache-Control:public, max-age=3600
When I load /content.html I can see I am getting a cached response from varnish, and the module.html markup is included appropriately, however, when I change module.html and ban it like: ban req.url == /_esi/module.html
or even if I make that ban broader: ban req.url ~ _esi
the page in my browser still doesn't change.
I can't seem to find much about this in the varnish documentation. Am I able to explicitly invalidate the included content (i.e. the fragment that comes from the ESI url) or do I have to wait for it to expire?
I also tried implementing and using PURGE to achieve this, but I still cannot seem to get fresh content from that include.