Re: set $no cache 0 не работает.
Hello! On Wed, Aug 03, 2022 at 10:24:13AM -0400, milov wrote: > Есть код > > set $no_cache 0; > > if ($request_method = POST){set $no_cache 1;} > if ($http_host ~* success.html$){set $no_cache 1;} > if ($remote_addr ~* ^(192.168.0*)$){set $no_cache 1;} > > # Не берется из кеша > fastcgi_cache_bypass $no_cache; > > # Не сохраняется в кеш > fastcgi_no_cache $no_cache; > > Ни один if не срабатывает, т.е. сохраняет в кеш и берёт из кеша. Куда > смотреть, копать? А должны? Первый if не имеет смысла, т.к. POST-запросы не кэшируются по умолчанию (см. http://nginx.org/r/fastcgi_cache_methods/ru). Его явно можно просто выкинуть. Второй if не имеет смысла, так как в переменной $http_host содержится заголовок запроса Host, и там указывается только доменное имя и порт (если этот заголовок вообще присутствует в запросе), так что вряд ли он содержит что-либо похожее на "success.html$". Возможно, имелась в виду переменная $uri (хотя лучше, конечно, для подобных вещей делать отдельный location без кэширования). Третий if не имеет смысла, так как написанному регулярному выражению (начало строки, "192", любой символ, "168", любой символ, любое количество символов "0", конец строки) не может соответствовать IP-адрес. Правильно что-нибудь вроде "^192\.168\.0". Ну или можно заменить на geo (http://nginx.org/r/geo/ru), но для одной сети непринципиально. -- Maxim Dounin http://mdounin.ru/ ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
Re: set $no cache 0 не работает.
map-ом надо переменную выставлять. В случае нескольких условий - несколько map-ов друг через друга On Wed, Aug 3, 2022, 7:24 PM milov wrote: > Есть код > > set $no_cache 0; > > if ($request_method = POST){set $no_cache 1;} > if ($http_host ~* success.html$){set $no_cache 1;} > if ($remote_addr ~* ^(192.168.0*)$){set $no_cache 1;} > > # Не берется из кеша > fastcgi_cache_bypass $no_cache; > > # Не сохраняется в кеш > fastcgi_no_cache $no_cache; > > Ни один if не срабатывает, т.е. сохраняет в кеш и берёт из кеша. Куда > смотреть, копать? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,294905,294905#msg-294905 > > ___ > nginx-ru mailing list -- nginx-ru@nginx.org > To unsubscribe send an email to nginx-ru-le...@nginx.org > ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
set $no cache 0 не работает.
Есть код set $no_cache 0; if ($request_method = POST){set $no_cache 1;} if ($http_host ~* success.html$){set $no_cache 1;} if ($remote_addr ~* ^(192.168.0*)$){set $no_cache 1;} # Не берется из кеша fastcgi_cache_bypass $no_cache; # Не сохраняется в кеш fastcgi_no_cache $no_cache; Ни один if не срабатывает, т.е. сохраняет в кеш и берёт из кеша. Куда смотреть, копать? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,294905,294905#msg-294905 ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org