nginx-proxy-manager icon indicating copy to clipboard operation
nginx-proxy-manager copied to clipboard

HTTP3 + QUIC support

Open nyanmark opened this issue 3 years ago • 35 comments

With QUIC support being in most of today's browsers, and tools already excising to enable QUIC within nginx I believe it would be a good idea to add the support to NPM helping users speed up those huge video streams.

nyanmark avatar Nov 02 '21 21:11 nyanmark

It would be nice to be able to use NPM to connect to internet radio servers that use QUIC.

iamgadgetman avatar Jun 02 '22 01:06 iamgadgetman

Hope this can be added to NPM. I would imagine if you don't have QUIC Google might rank your site lower copared to a site that does have QUIC. It would also make your site a little fit faster - also leading to a higher ranking.

ingarb avatar Oct 07 '22 08:10 ingarb

I totally agree here, this needs to be a top priority.

danfratamico avatar Dec 20 '22 17:12 danfratamico

I was going about the route of using NPM in front of a Docker/container setup only to realize that although the web server I'm running should support QUIC & HTTP/3 unfortunately NPM doesn't. Having NPM in front of any containers/services I start up is very handy but I'd sure like the ability to use QUIC & HTTP/3. Keeping an eye on this.

timnolte avatar Jan 21 '23 03:01 timnolte

It's still experimental/beta in Nginx and only available as separate packages/in a separate branch. https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/ https://github.com/nginx-quic/nginx-quic

While I lend my support to those asking, I don't think this can/should go anywhere on the NPM side before Nginx merge it into their stable branch.

nonlinearsugar avatar Apr 20 '23 17:04 nonlinearsugar

It's still experimental/beta in Nginx and only available as separate packages/in a separate branch. https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/ https://github.com/nginx-quic/nginx-quic

While I lend my support to those asking, I don't think this can/should go anywhere on the NPM side before Nginx merge it into their stable branch.

It's already merged, right?

EnfermeraSexy avatar Jun 03 '23 08:06 EnfermeraSexy

Yeah. Time permitting, I think this is ready for @jc21 to action.

https://nginx.org/en/docs/quic.html

nonlinearsugar avatar Jun 03 '23 20:06 nonlinearsugar

Any update on this?

squadramunter avatar Sep 02 '23 19:09 squadramunter

Would be amazing to have it

multipliedtwice avatar Sep 03 '23 12:09 multipliedtwice

would be awesome ... no news ?

NGINX now officially supports HTTP/3 with QUIC. It is available as part of NGINX 1.25.1 mainline version for open source users and NGINX Plus R30 for enterprise customers.]

stanthewizzard avatar Sep 19 '23 08:09 stanthewizzard

I hope we will see this added in the near future, I am already using NGINX with HTTP/3 on some of my servers and it can improve things significantly with larger sites! Please, this needs to be implemented. As the comment above said, it is already in mainline version of NGINX.

llek1000 avatar Sep 22 '23 23:09 llek1000

so please, me too.... I am waiting for it.....

devius avatar Nov 04 '23 18:11 devius

Also all big Websites now support http/3 (Google, Microsoft, Cloudflare, Amazon, Meta). So I think it is getting time for a implementation.

LDprg avatar Nov 08 '23 08:11 LDprg

Any updates?

FluffyDiscord avatar Jan 06 '24 17:01 FluffyDiscord

Any updates?

fengyuclub avatar Jan 12 '24 09:01 fengyuclub

Any updates?

iwyz0 avatar Jan 15 '24 12:01 iwyz0

OpenResty 1.25.3.1 added support for HTTP/3.

scampower3 avatar Jan 16 '24 04:01 scampower3

Hello, I have tried to add HTP3 support for nginx-proxy-manager

If you are interested in this, you can give it a try

docker: https://hub.docker.com/repository/docker/lateautumn233/nginx-proxy-manager/ Source code: https://github.com/lateautumn233/nginx-proxy-manager

lateautumn233 avatar Jan 26 '24 15:01 lateautumn233

Hello, I have tried to add HTP3 support for nginx-proxy-manager

If you are interested in this, you can give it a try

docker: https://hub.docker.com/repository/docker/lateautumn233/nginx-proxy-manager/ Source code: https://github.com/lateautumn233/nginx-proxy-manager

You did what they couldn't do. Thank you

iwyz0 avatar Jan 26 '24 17:01 iwyz0

Should this be as simple as replacing docker image in the compose?

daedric7 avatar Jan 26 '24 17:01 daedric7

Yes But currently only the amd64 architecture is available

lateautumn233 @.***

---Original--- From: @.> Date: Sat, Jan 27, 2024 01:21 AM To: @.>; Cc: @.@.>; Subject: Re: [NginxProxyManager/nginx-proxy-manager] HTTP3 + QUIC support(Issue #1550)

Should this be as simple as replacing docker image in the compose?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

lateautumn233 avatar Jan 26 '24 17:01 lateautumn233

Yes But currently only the amd64 architecture is available lateautumn233 @.*** ---Original--- From: @.> Date: Sat, Jan 27, 2024 01:21 AM To: @.>; Cc: @.@.>; Subject: Re: [NginxProxyManager/nginx-proxy-manager] HTTP3 + QUIC support(Issue #1550) Should this be as simple as replacing docker image in the compose? — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

I did it.

It seems H3 is being enabled:

npm-1  | [1/26/2024] [5:28:15 PM] [Migrate  ] › ℹ  info      Current database version: none
npm-1  | [1/26/2024] [5:28:15 PM] [Migrate  ] › ℹ  info      [http3_support] Migrating Up...
npm-1  | [1/26/2024] [5:28:15 PM] [Migrate  ] › ℹ  info      [http3_support] proxy_host Table altered
npm-1  | [1/26/2024] [5:28:15 PM] [Migrate  ] › ℹ  info      [http3_support] redirection_host Table altered
npm-1  | [1/26/2024] [5:28:15 PM] [Migrate  ] › ℹ  info      [http3_support] dead_host Table altered

But, in chrome, only H2 is being used:

image

I'll debug further later tonight.

daedric7 avatar Jan 26 '24 17:01 daedric7

Yes But currently only the amd64 architecture is available lateautumn233 @.*** ---Original--- From: @.> Date: Sat, Jan 27, 2024 01:21 AM To: _@**._>; Cc: _@.@._>; Subject: Re: [NginxProxyManager/nginx-proxy-manager] HTTP3 + QUIC support(Issue #1550) Should this be as simple as replacing docker image in the compose? — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: _@_.*>

I did it.

It seems H3 is being enabled:

npm-1  | [1/26/2024] [5:28:15 PM] [Migrate  ] › ℹ  info      Current database version: none
npm-1  | [1/26/2024] [5:28:15 PM] [Migrate  ] › ℹ  info      [http3_support] Migrating Up...
npm-1  | [1/26/2024] [5:28:15 PM] [Migrate  ] › ℹ  info      [http3_support] proxy_host Table altered
npm-1  | [1/26/2024] [5:28:15 PM] [Migrate  ] › ℹ  info      [http3_support] redirection_host Table altered
npm-1  | [1/26/2024] [5:28:15 PM] [Migrate  ] › ℹ  info      [http3_support] dead_host Table altered

But, in chrome, only H2 is being used:

image

I'll debug further later tonight.

Disregard, i had to refresh the NPM ui to get the new option showing :)

daedric7 avatar Jan 26 '24 17:01 daedric7

Hello, I have tried to add HTP3 support for nginx-proxy-manager

If you are interested in this, you can give it a try

docker: https://hub.docker.com/repository/docker/lateautumn233/nginx-proxy-manager/ Source code: https://github.com/lateautumn233/nginx-proxy-manager

Other architectures docker pull lateautumn233/nginx-proxy-manager:test

I need more testing, and if there are no issues, I will try to contribute upstream

lateautumn233 avatar Feb 03 '24 03:02 lateautumn233

Other architectures docker pull lateautumn233/nginx-proxy-manager:test

I need more testing, and if there are no issues, I will try to contribute upstream

Working a-OK on arm64 (Radxa Rock 5 model B), for me. Page loads confirm http/3 and it's working perfectly. I can finally use NPM again!

RainmakerRaw avatar Feb 14 '24 22:02 RainmakerRaw

FYI, if you haven't seen recently that there is at least 1 open CVE for HTTP/3 + QUIC in Nginx. It was actually the subject of one of the core devs leaving the project and forking Nginx. I'd be careful about pushing this forward as the support is still marked experimental.

timnolte avatar Feb 17 '24 19:02 timnolte

Here are the details for reference. https://my.f5.com/manage/s/article/K000138444

timnolte avatar Feb 17 '24 19:02 timnolte

It does look like a fixed version was released, however there is a part of me that is concerned that the HTTP/3 + QUIC module is considered experimental still.

timnolte avatar Feb 17 '24 19:02 timnolte

Portainer didn't show that udp port 443 or 80 is open ? image

i tried this https://github.com/ZoeyVid/NPMplus However, since I work with docker networks and no ports are free, only 443 and 80 somehow don't work for me :-(

lastsamurai26 avatar Feb 23 '24 09:02 lastsamurai26

Hi @lateautumn233, I tried your version of NPM + quic enabled but somehow after inspecting the network tab it seems like the protocol doesn't use http3 but instead it uses http/1.1 or http2 (if enabled). I did expose port 443/udp from the docker compose already.

Another thing that I've tried is to add reuseport at the listen directive for quic and it does work if I have only one proxy host. If I add a new proxy host, it will not work with reuseport. Any advise you can give on my situation?

tgarif avatar Mar 09 '24 14:03 tgarif