<div dir="auto"><div>Hello Maxim!<br><div class="gmail_extra"><br><div class="gmail_quote">On Nov 23, 2017 17:55, "Maxim Dounin" <<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello!<br>
<div class="quoted-text"><br>
On Thu, Nov 23, 2017 at 09:00:52AM -0600, Andrei wrote:<br>
<br>
> Hi all,<br>
><br>
> I've been using Varnish for 4 years now, but quite frankly I'm tired of<br>
> using it for HTTP traffic and Nginx for SSL offloading when Nginx can just<br>
> handle it all. One of the main issues I'm running into with the transition<br>
> is related to cache purging, and setting custom expiry TTL's per<br>
> zone/domain. My questions are:<br>
><br>
> - Does anyone have any recent working documentation on supported<br>
> modules/Lua scripts which can achieve wildcard purges as well as specific<br>
> URL purges?<br>
<br>
</div>Cache purging is available in nginx-plus, see<br>
<a href="http://nginx.org/r/proxy_cache_purge" rel="noreferrer" target="_blank">http://nginx.org/r/proxy_<wbr>cache_purge</a>.<br>
<div class="quoted-text"></div></blockquote></div></div></div><div dir="auto">I'm aware of the paid version, but I don't have  a budget for it yet, and quite frankly this should be a core feature for any caching service. Are there no viable options for the community release? It's a rather pertinent feature to have in my transition</div><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="quoted-text"><br>
> - How should I go about defining custom cache TTL's for: frontpage,<br>
> dynamic, and static content requests? Currently I have Varnish configured<br>
> to set the ttl's based on request headers which are added in the config<br>
> with regex matches against the host being accessed.<br>
<br>
</div>Normal nginx approach is to configure distinct server{} and<br>
location{} blocks for different content, with appropriate cache<br>
validity times.  For example:<br>
<br>
    server {<br>
        listen 80;<br>
        server_name <a href="http://foo.example.com" rel="noreferrer" target="_blank">foo.example.com</a>;<br>
<br>
        location / {<br>
            proxy_pass <a href="http://backend" rel="noreferrer" target="_blank">http://backend</a>;<br>
            proxy_cache one;<br>
            proxy_cache_valid 200 5m;<br>
        }<br>
<br>
        location /static/ {<br>
            proxy_pass <a href="http://backend" rel="noreferrer" target="_blank">http://backend</a>;<br>
            proxy_cache one;<br>
            proxy_cache_valid 200 24h;<br>
        }<br>
    }<br>
<br>
Note well that by default nginx respects what is returned by the<br>
backend in various response headers, and proxy_cache_valid time<br>
only applies if there are no explicit cache validity time set, see<br>
<a href="http://nginx.org/r/proxy_ignore_headers" rel="noreferrer" target="_blank">http://nginx.org/r/proxy_<wbr>ignore_headers</a>.<br></blockquote></div></div></div><div dir="auto">So to override the ttls set by the backend, I would have to use proxy_ignore_headers for all headers which can directly affect the intended TTL?</div><div dir="auto"><br></div><div dir="auto">Thank you for your time!</div><div dir="auto"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<font color="#888888"><br>
--<br>
Maxim Dounin<br>
<a href="http://mdounin.ru/" rel="noreferrer" target="_blank">http://mdounin.ru/</a><br>
______________________________<wbr>_________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx</a><br>
</font></blockquote></div><br></div></div></div>