<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">13 февраля 2017 г., 18:01 пользователь S.A.N <span dir="ltr"><<a href="mailto:nginx-forum@forum.nginx.org" target="_blank">nginx-forum@forum.nginx.org</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Здравствуйте.<br>
<br>
Есть потребность в реализации вот такого поведения:<br></blockquote><div><br><br></div><div>а если у вас несколько экземпляров nginx ? (варианты - из простых dns round robin)<br></div><div>т.е. инвалидируете вы только на одной реплике<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
<a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html" rel="noreferrer" target="_blank">https://www.w3.org/Protocols/<wbr>rfc2616/rfc2616-sec13.html</a><br>
Some HTTP methods MUST cause a cache to invalidate an entity. This is either<br>
the entity referred to by the Request-URI, or by the Location or<br>
Content-Location headers (if present). These methods are:<br>
 - PUT<br>
 - DELETE<br>
 - POST<br>
<br>
Это нужно вот для чего, есть Nginx кеш динамических ответов от бекенда, его<br>
TTL 3 days, URI: /news/top/<br>
Авторизованный пользователь добавляет новую новость, методом POST на URI:<br>
/news/top/<br>
Бекенд сохраняет этот контент и отдает клиенту НТТР статус 200.<br>
<br>
В соответствии с RFC 2616, хотелось бы чтобы Nginx, очистил кеш URI:<br>
/news/top/ потому что на этот URI пришел запрос методом POST и бекенд<br>
ответил 200 ОК, что означает что все нормально контент изменился и кеш этого<br>
URI надо инвалидировать.<br>
<br>
Тоже самое с методом DELETE.<br>
<br>
Вот с методом PUT и заголовком Content-Location можно делать ещё более<br>
крутые штуки, например авторизованный пользователь отправляет PUT запрос на<br>
URI: /news/rest.php?id=150<br>
Бекенд сохраняет этот контент и отдает клиенту НТТР статус 200 с заголовком<br>
Content-Location /news/150/ и в теле ответа уже новый контент который нужно<br>
сохранить в кеше использую как URI значения заголовка Content-Location<br>
/news/150/ т.е. Nginx должен инвалидировать кеш в ключе которого<br>
использовался URI /news/150/.<br>
<br>
Это очень удобный функционал, и он описан в спецификации, его можно<br>
реализоваь в Nginx?<br>
Спасибо.<br>
<br>
Posted at Nginx Forum: <a href="https://forum.nginx.org/read.php?21,272373,272373#msg-272373" rel="noreferrer" target="_blank">https://forum.nginx.org/read.<wbr>php?21,272373,272373#msg-<wbr>272373</a><br>
<br>
______________________________<wbr>_________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx-ru</a></blockquote></div><br></div></div>