linuxserver / reverse-proxy-confs

These confs are pulled into our SWAG image: https://github.com/linuxserver/docker-swag
GNU General Public License v3.0
1.33k stars 299 forks source link

Add http2 to all listen directives #576

Closed nemchik closed 1 year ago

nemchik commented 1 year ago

Closes https://github.com/linuxserver/docker-swag/issues/377

Specifics:

Existing confs are not causing broken instances, but are causing log warnings. The warning is stating that the protocols for the listen directive have been redefined after being set by another conf. Proxy confs did not previously include http2 because https://www.nginx.com/blog/http2-module-nginx/#QandA

Q: Will you support HTTP/2 on the upstream side as well, or only support HTTP/2 on the client side?

A: At the moment, we only support HTTP/2 on the client side. You can’t configure HTTP/2 with proxy_pass. [Editor – In the original version of this post, this sentence was incorrectly transcribed as “You can configure HTTP/2 with proxy_pass.” We apologize for any confusion this may have caused.]

But what is the point of HTTP/2 on the backend side? Because as you can see from the benchmarks, there’s not much benefit in HTTP/2 for low‑latency networks such as upstream connections.

Also, in NGINX you have the keepalive module, and you can configure a keepalive cache. The main performance benefit of HTTP/2 is to eliminate additional handshakes, but if you do that already with a keepalive cache, you don’t need HTTP/2 on the upstream side.

I still do not see any evidence that this has changed, but having the http2 directive does not cause issues (it might just be ignored).