Nginx – http3 support for upstream on nginx or any other webserver

httpnginxPROXY

I managed to configure nginx with https3 the experimental versions from the vanilla project and also from the CloudFlare project. I was wandering If there was anything that would allow for a proxy (at this point it does not matter if nginx or any other project) to communicate to the backend via http3. This is my situation:

User

|

Nginx http3 proxy listening on domain1.com.

|

network where UDP should do much better

|

Backend with nginx http3+quiche enabled listening on domain2.com

I tried to setup http3 on the proxy, but while it receives the HTTP for the backend I can not proxy using http3. For instance proxy_http_version 3.0; is not valid YET even on the nginx experimental project, etc.

Maybe someone has some ideas about how it could be so the traffic can be proxied via http3 from domain1.com to domain2.com or if there is any already existing project that could help me?

EDIT: just to clarify these are the two solutions I tested.

  1. https://blog.cloudflare.com/experiment-with-http-3-using-nginx-and-quiche/
  2. https://www.nginx.com/blog/introducing-technology-preview-nginx-support-for-quic-http-3/

Best Answer

NGINX has an experimental HTTP/3 branch, I don't know if it supports HTTP/3 upstreams but you could give it a try.

Given HTTP/3 is not yet final, it is not available in mainline NGINX and you have to build it yourself from its testing branch, the ReadMe seems to list the progress of QUIC support and lists basic HTTP/3 as supported with no particular limitations regarding upstreams despite most example being focused on listen usage.

See also the official NGINX announcement.

Related Topic