Микро-кэширование Nginx с обратным вызовом jQuery

#php #jquery #caching #nginx

#php #jquery #кэширование #nginx

Вопрос:

У меня настроено микро-кэширование на моем сервере Nginx для кэширования API в течение 2 секунд. Однако каждый раз, когда делается запрос к API, Nginx видит другой URL-адрес из-за прикрепленного параметра обратного вызова jQuery.

Пример:

api.example.com/get_heats.php?sheet=105amp;callback=jQuery222018438785197213292_1475857341748amp;_=1475857342048

и

api.example.com/get_heats.php?sheet=105amp;callback=jQuery222018438785197213292_1475857341748amp;_=1475857342049

должно возвращать одни и те же значения в течение 2 секунд, потому что они оба ссылаются на лист 105, но это не так, потому что параметры обратного вызова и _ меняются с каждым запросом. Есть ли способ для Nginx игнорировать какие-либо другие параметры?

Комментарии:

1. опубликуйте свою конфигурацию кэширования nginx? может быть, есть способ сопоставить с регулярным выражением, игнорируя параметр jquery

2. См. serverfault.com/questions/545009 /…

3. cOle2 — эта ссылка кэширует URL-адреса без каких-либо параметров. Мне нужно кэшировать URL-адрес с одним параметром и ни с одним из других.

Ответ №1:

Пожалуйста, попробуйте следующий код,

 server {
   ...
   location ~ .php$ {
      ...
      set $cache_key $request_uri;
      ...
      if ($args ~ "sheet") {
         set $cache_key $cache_key|$arg_sheet;
      }
      ...
      fastcgi_cache_key $cache_key;
      ...
   }
   ...
}
  

Ссылки : Научитесь реализовывать микрокэширование, fastcgi_cache_key