делаю энтерпрайз бложик на локалхосте, способный выдержать хайлоад. в связи с чем сделал полное кэширование всего и вся. целиком кэшируется вся страница, но на странице есть динамический блок с авторизацией пользователя и оно тоже кэшируется, только еще с ключом $cookie_phpsessid. в итоге все прекрасно работает - отдается статика, и страница, и блок генерятся лишь единожды, а далее берутся уже из кэша, и склеиваются при помощи SSI. пользователь может заголиниться/разлогиниться - сгенерируется новый session_id, и блок с авторизацией снова попадет в кэш...
столкнулся с проблемой, что пользователь оставляет на сайте комментарий, а обновить страницу в кэше, чтобы отобразить страницу с новым комментарием - я не знаю как.
нашел парочку, как я считаю, костыльных методов. сторонний purge модуль nginx, который удаляет запрашиваемую страницу из кэша, либо же отправлять X-Update заголовок на страницу и проверять его через fastcgi_cache_bypass.
так или иначе это получается, что из скрипта во время обработки POST придется дергать эту же страницу? чтобы немедля обновить ее в кэше. пффф
вот я подумал, чтобы во время обработки POST запроса на добавления комментария - создавать клиенту cookie, затем проверять ее через fastcgi_cache_bypass $cookie_update, - и если такая кука существует, то nginx не будет брать страницу из кэша, а обратится к бэкенду. и в бэкенде уже генерируем эту страницу с новым комментарием, а куку можно удалить.
по вкусу, можно cookie заменить на GET параметр ?nocache=true и проверять $arg_nocache. не суть важно...
почти все прозрачно, без лишних запросов. и обновляется страница сразу.
и существуют ли еще способы удалить необходимые страницы из кэша? но скорей всего, придется ставить purge модуль, т.к. это самый удобный способ. блин.