<div dir="ltr">You can actually can run H/2 through HAProxy, using ALPN to determine if the client understands H/2  I have the following (snippet of a) config that sends to different nginx ports based on the ALPN response.<div><br></div><div><div>frontend https</div><div>  mode tcp</div><div>  bind <a href="http://0.0.0.0:443">0.0.0.0:443</a> ssl crt /etc/haproxy/certs alpn h2,http/1.1 ecdhe secp384r1</div><div>  http-response set-header Strict-Transport-Security "max-age=16000000; includeSubDomains; preload;"</div><div>  timeout http-request 10s</div><div>  #send all HTTP/2 traffic to a specific backend</div><div>  use_backend http2-nodes if { ssl_fc_alpn -i h2 }</div><div>  #send HTTP/1.1 and HTTP/1.0 to default, which don't speak HTTP/2</div><div>  default_backend http1-nodes</div><div><br></div><div>backend http1-nodes</div><div>  mode http</div><div>  balance roundrobin</div><div>  default-server inter 1s fall 2</div><div><br></div><div>  server web01 <a href="http://10.1.1.12:80">10.1.1.12:80</a> check send-proxy</div><div>  server web03 <a href="http://10.1.1.14:80">10.1.1.14:80</a> check send-proxy</div><div><br></div><div>backend http2-nodes</div><div>  mode tcp</div><div>  balance roundrobin</div><div>  default-server inter 1s fall 2</div><div><br></div><div>  server web01 <a href="http://10.1.1.12:81">10.1.1.12:81</a> check send-proxy</div><div>  server web03 <a href="http://10.1.1.14:81">10.1.1.14:81</a> check send-proxy<br><br>Sounds like you may not want to complicate this system ATM, but just throwing it out there.  It's worked really well for me, i have had i live for about a year.  </div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 14, 2017 at 1:09 PM, Lucas Rolff <span dir="ltr"><<a href="mailto:lucas@lucasrolff.com" target="_blank">lucas@lucasrolff.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div>
<div>
<div id="m_-3844319223053452492x_compose-container" style="direction:ltr">
<span><span></span></span>
<div>
<div>
<div style="direction:ltr">Okay cool, I'll give it a try</div>
<div><br>
</div>
<div style="direction:ltr">In our case we do not run http2 on the machines since haproxy runs in front as well (which doesn't support http2)</div>
<div><br>
</div>
<div style="direction:ltr">I'll also try enable a bit more verbose logging on one of the machines to see what the logs say</div>
<div><br>
</div>
<div style="direction:ltr">Thanks a lot Maxim!</div>
<div><br>
</div>
<div style="direction:ltr">Best regards,</div>
<div style="direction:ltr">Lucas Rolff</div>
</div>
<div><br>
</div>
<div class="m_-3844319223053452492x_acompli_signature">Get <a href="https://aka.ms/o0ukef" target="_blank">Outlook for iOS</a></div>
</div>
</div>
<hr style="display:inline-block;width:98%">
<div id="m_-3844319223053452492x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>From:</b> nginx <<a href="mailto:nginx-bounces@nginx.org" target="_blank">nginx-bounces@nginx.org</a>> on behalf of Maxim Dounin <<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>><br>
<b>Sent:</b> Thursday, September 14, 2017 6:55:57 PM<br>
<b>To:</b> <a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<b>Subject:</b> Re: nginx cache growing well above max_size threshold</font>
<div> </div>
</div>
</div><div><div class="h5">
<font size="2"><span style="font-size:10pt">
<div class="m_-3844319223053452492PlainText">Hello!<br>
<br>
On Thu, Sep 14, 2017 at 04:34:09PM +0000, Lucas Rolff wrote:<br>
<br>
> I have a minor question, so I have an nginx box using <br>
> proxy_cache, it has a key zone of 40 gigabyte (so it can cache <br>
> 320 million files), a max_size of 1500 gigabyte for the cache <br>
> and the inactive set to 30 days.<br>
> <br>
> However we experience that nginx goes well above the defined <br>
> limit - in our case the max size is 1500 gigabyte, but the cache <br>
> directory takes goes well above 1700 gigabyte.<br>
> <br>
> There's a total of 42.000.000 files currently on the system, <br>
> meaning the average filesize is about 43 kilobyte.<br>
> <br>
> Normally I know that nginx can go slightly above the limit, <br>
> until the cache manager purges the files, but it stays at about <br>
> 1700 gigabyte constantly unless we manually clear out the size.<br>
> <br>
> I see there's a change in 1.13.1 that ignores long locked cache <br>
> entries, is it possible that this bugfix actually fixes above <br>
> issue?<br>
> <br>
> Upgrading is rather time consuming and we have to ensure nginx <br>
> versions across the platform, so I wonder if anyone has some <br>
> pointers if the above bugfix would maybe solve our issue. <br>
> (currently the custom nginx version is based on nginx 1.10.3).<br>
<br>
<a href="https://trac.nginx.org/nginx/ticket/1163" target="_blank">https://trac.nginx.org/nginx/<wbr>ticket/1163</a><br>
<br>
TL;DR:<br>
<br>
This behaviour indicate there is a problem somewhere, likely <br>
socket leaks or process crashes.  Reports suggests it might be <br>
related to HTTP/2.  The change in 1.13.1 don't fix the root cause, <br>
but will allow nginx to keep cache under max_size regardless of <br>
the problem.<br>
<br>
-- <br>
Maxim Dounin<br>
<a href="http://nginx.org/" target="_blank">http://nginx.org/</a><br>
______________________________<wbr>_________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx</a><br>
</div>
</span></font>
</div></div></div>

<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></blockquote></div><br></div>