Вам правильно ответили, в первую очередь нужно читать документацию.
Возможно вы удивитесь но ваш конфиг по кешированию может и должен выглядить намного короче, как-то так
fastcgi_cache_lock on;
fastcgi_cache_revalidate on;
fastcgi_cache_methods GET HEAD;
fastcgi_cache_valid 200 301 302 0s;
fastcgi_cache_key "$host$uri$is_args$args";
fastcgi_cache_use_stale error updating http_503;
Програмить что-то более в конфиге Nginx не нужно, управлять кэшированием нужно на стороне бекенда, это будет удобней и эффективней.
Т.е скрипты по адресу /admin /search, должны отдавать HTTP хедер Cache-Control: no-store, это запретит кеширования на стороне Nginx и в браузере клиента.
Скрипты по адресу /news /feed должны отдавать HTTP хедер Cache-Control: max-age=600, это разрешит кешировать страницу на 10 минут (600 секунд), таким образом кеш будет в браузере клиента и в Nginx, и браузер на протяжении 10 минут, вообще не будет делать повторных запросов по этому uri, а будет использовать свой локальный кеш, это намного быстрей чем гонять контент по сети.
С куками тоже все просто, как правило проблема в том что в скриптах используется session_start() всегда и везде, но эта функция автоматом отправляет HTTP заголовки на запрет кеширования и куки с id сессии, функция все делает правильно, просто вызывать её нужно только в тех скриптах которые недолжны попадать в кеш, во всех остальных скриптах, функция session_start() вызыватся не должна.
И советую не читать статьи, типа - Подводные камни при использовании кэширования в nginx http://habrahabr.ru/post/72539/
К сожалению, в статье больше глупостей чем разумных вещей, если будите читать документацию и пользоваться логикой, подводных камней в кэшировании не будет и конфиг станет короче и управляемость кешем станет прозрачной а главное само кэширования станет эффективней.
Да, насчет отрезать слеш в конце uri, лучше это тоже делать на стороне бекенда, тогда редиректы которые сделал бекенд, соханятся в кеше Nginx и повторные запросы со слешем в конце уже не будут приходить на бекенд, Nginx сам ответит редиректом из своего кеша.