How to set up Authcache module with Varnish and ESI? I am trying to set up Drupal 7 with Authcache beta 2 and Varnish 3.0 but I can't get the ESI blocks working. Varnish it self seems to work well.

I am using the example.vcl from sites/all/modules/authcache/modules/authcache_varnish/ but on the Authcache ESI status debug page I get the following messages:

ERROR: Request Header   HTTP header X-Authcache-Do-ESI is not on primary request.
Please make sure that the reverse proxy software (varnish) is configured according to the requirements of authcache_esi / authcache_varnish.

OK  ESI Tag Tag successfully substituted by reverse proxy.

ERROR: ESI Subrequest Header    HTTP header X-Authcache is not on ESI subrequest.
Please make sure that the reverse proxy software (varnish) is configured according to the requirements of authcache.


The second problem is that even if I configure some blocks on the blocks setting page to load via ESI and AJAX, this block do not show up at admin/config/system/authcache/p13n and admin/config/system/authcache/p13n/frontcontroller.

There for it does not surprise that watchdog gives the error message (for each block):

Failed to find url generator for route frag/block/block-25


EDIT: My setting.php is set up as follows:

$conf['reverse_proxy'] = TRUE;
$conf['reverse_proxy_addresses'] = array('127.0.0.1');
/**
 * Add Varnish as the page cache handler.
 */
$conf['cache_backends'][] = 'sites/all/modules/varnish/varnish.cache.inc';
$conf['cache_backends'][] = 'sites/all/modules/authcache/authcache.cache.inc';
$conf['cache_backends'][] = 'sites/all/modules/authcache/modules/authcache_builtin/authcache_builtin.cache.inc';
$conf['cache_class_cache_page'] = 'VarnishCache';
// Drupal 7 does not cache pages when we invoke hooks during bootstrap.
// This needs to be disabled.
$conf['page_cache_invoke_hooks'] = FALSE;


I didn't find any documentations so what am I supposed to do?
When using this file I had to scroll down to line 142 and change this:

  if (req.restarts == 0 &amp;&amp; server.identity !~ "^/tmp/vtc.") {
    unset req.http.X-Authcache-Do-ESI;
    unset req.http.X-Authcache-Get-Key;
    unset req.http.X-Authcache-Key-CID;
    unset req.http.X-Authcache-Key;
  }


into this:

  if (req.restarts == 0 &amp;&amp; server.identity !~ "^/tmp/vtc.") {
    unset req.http.X-Authcache-Do-ESI;
    unset req.http.X-Authcache-Get-Key;
    unset req.http.X-Authcache-Key-CID;
    unset req.http.X-Authcache-Key;
  }

  set req.http.X-Authcache = 1; // Added by me
  set req.http.X-Authcache-Do-ESI = 1; // Added by me


I'm not sure why those headers are not added but instead removed in the default version, since the module seems to require them to be present in the first incoming request. However, given the nature of those headers, they seem to make more sense when returned from the backend to Varnish than the opposite. znerol might have a good answer for you (and for me) why they are required in the first request.

I also wanna say thank you znerol for this amazing module and for the ongoing documentation work.