#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