2016-10-06 2 views

ответ

4

для Nginx, пожалуйста, попробовать следующий код,

... 
set $no_cache 0; 
... 
if ($http_x_requested_with ~* 'XMLHttpRequest') { 
    set $no_cache 1; 
} 
... 
location ~ \.php$ { 
    ... 
    fastcgi_no_cache $no_cache; 
    ... 
} 
... 

Ссылки: Learn to implement caching in Nginx, fastcgi_no_cache

+1

Параметр fastcgi_no_cache гарантирует, что ответ не будет кэшироваться, если он в противном случае был бы кеширован. Однако, если есть существующий кешированный ответ, он будет отвечать на этот ответ. Если вы хотите убедиться, что это не так, вам нужно добавить 'fastcgi_cache_bypass $ no_cache;'. Комбинация параметров fastcgi_no_cache и fastcgi_cache_bypass дает мелкозернистый контроль поведения кеширования. – Dayo

0

It is generally a good idea to avoid if in nginx configuration files whenever possible , Если у вас есть какой-либо способ адаптировать интерфейс, откуда отправляются запросы, попробуйте добавить текущее время в качестве переменной GET (например, myhost/?1475834405). Поскольку этот URL еще не был запрошен, кеш не будет использоваться.