# -*- mode: nginx; mode: flyspell-prog; ispell-current-dictionary: american -*- ### Testing if we should be serving content from cache or not. This is ### needed for any Drupal setup that uses an external cache. ## Let Ajax calls go through. map $uri $no_cache_ajax { default 0; /system/ajax 1; } ## Testing for the session cookie being present. If there is then no ## caching is to be done. Note that this is for someone using either ## Drupal 7 pressflow or stock Drupal 6 core with no_anon ## (http://drupal.org/project/no_anon). map $http_cookie $no_cache_cookie { default 0; ~SESS 1; # PHP session cookie } ## Combine both results to get the cache bypassing mapping. map $no_cache_ajax$no_cache_cookie $no_cache { default 1; 00 0; } ## If you're using stock Drupal 6 without no_anon, i.e., there's a ## session cookie being served even to anonymous users, then uncomment ## the three lines below and comment the above map directive # map $http_cookie $no_cache { # default 0; # ~DRUPAL_UID 1; # DRUPAL_UID cookie set by Boost # } ## Set a cache_uid variable for authenticated users. map $http_cookie $cache_uid { default nil; # hommage to Lisp :) ~SESS[[:alnum:]]+=(?[[:graph:]]+) $session_id; }