When you're using Varnish caching in Drupal 7 and 8, you might see headers on an HTTP request that mentions a Varnish HIT and a Drupal cache MISS. This result isn't abnormal. Here's how it happens:
MISS, so it's passed through to Drupal.MISS.MISS.MISS response, which includes the X-Drupal-Cache: MISS response header.When the page is requested again, it will be a cache HIT for Varnish, but it will contain the now cached response from Drupal, which has the X-Drupal-Cache: MISS response header. Every time a request for that page returns a Varnish HIT, it terminates without hitting Drupal. Because of this, the X-Drupal-Cache header is not necessarily providing up-to-date information, because it was cached in the past and will remain there until the cache's TTL (Time to Live) (max-age) has passed.
This pattern of MISS and HIT will occur when Varnish and Drupal are set up in the following two ways:
Acquia recommends large values for the expiration of cached pages, because Varnish obeys this value. Large values mean that most of the anonymous traffic will terminate in Varnish.
If this content did not answer your questions, try searching or contacting our support team for further assistance.
Wed Oct 22 2025 09:07:31 GMT+0000 (Coordinated Universal Time)