Представьте, что у нас есть сайт интернет-магазина. Он содержит список товаров для продажи и связанные с ними цены. Из-за запутанной математики, стоящей за ценой (раньше они предлагали скидки на основе истории пользователей, и мы не можем это изменить), для отображения каждой страницы может потребоваться время.
Обычно это не проблема, если только поисковые пауки / боты не прибегают к агрессивной переиндексации сайта. И сайт начинает считать цены за каждый битовый запрос, несмотря на то, что у ботов не будет никаких "личных" скидок и т. Д.
Я хотел бы использовать функцию кеширования nginx, но проблема в том, что nginx не кэширует ответы с заголовками Set-Cookie. И да, страницы сайта всегда пытаются установить cookie даже для ботов.
Я не могу изменять код сайта, поэтому единственная идея - использовать кеш и обслуживать устаревший кеш только для ботов.
map $http_user_agent $do_not_cache_it {
"~Bot" "1";
default "0";
}
..
server {
location / {
...
proxy_cache_bypass $do_not_cache_it;
proxy_ignore_headers "Set-Cookie";
proxy_hide_header "Set-Cookie";
...
}
}
это работает, но файлы cookie очищаются и скрываются для всех запросов, а не только от ботов, поэтому даже пользователи-люди не могут, скажем, войти на сайт.
В любом случае я могу успешно сыграть в эту игру с кешем nginx, пожалуйста?