Есть страница, которая кэшируется целиком. С помощью ssi настроил «окно» для счетчика просмотров.
<!--#include virtual="ssi/page_views.php" -->
Конфиг выглядит так
location ~ /ssi/page_views.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
ssi on;
ssi_last_modified on;
include fastcgi_params;
fastcgi_index index.php;
# Backend server
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param HTTP_IF_NONE_MATCH $http_if_none_match;
fastcgi_param HTTP_IF_MODIFIED_SINCE $http_if_modified_since;
##
# fastCGI Cache
# Включаем кэширование и тщательно выбираем ключ кэша.
##
# выше за данным примером кофига устанавливается skip_cache когда необходимо не кэшировать
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache wholepage;
fastcgi_cache_valid 200 301 302 304 5m;
fastcgi_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
}
Если оставляем 'ssi_last_modified on' last modified заголовок отдается, сервер отдает статус 304 и ssi не работает. Возможно ли, чтобы и 304 отдавало и динамически счетчик срабатывал?