NginxProxyManager / nginx-proxy-manager

Docker container for managing Nginx proxy hosts with a simple, powerful interface
https://nginxproxymanager.com
MIT License
20.78k stars 2.41k forks source link

HTTP3 + QUIC support #1550

Open nyanmark opened 2 years ago

nyanmark commented 2 years ago

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.

iamgadgetman commented 2 years ago

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

ingarb commented 1 year ago

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.

danfratamico commented 1 year ago

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

timnolte commented 1 year ago

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.

nonlinearsugar commented 1 year ago

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.

EnfermeraSexy commented 1 year ago

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?

nonlinearsugar commented 1 year ago

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

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

squadramunter commented 10 months ago

Any update on this?

multipliedtwice commented 10 months ago

Would be amazing to have it

stanthewizzard commented 9 months ago

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.]

llek1000 commented 9 months ago

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.

devius commented 8 months ago

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

LDprg commented 7 months ago

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

FluffyDiscord commented 5 months ago

Any updates?

fengyuclub commented 5 months ago

Any updates?

iwyz0 commented 5 months ago

Any updates?

scampower3 commented 5 months ago

OpenResty 1.25.3.1 added support for HTTP/3.

lateautumn233 commented 5 months ago

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

iwyz0 commented 5 months ago

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

daedric7 commented 5 months ago

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

lateautumn233 commented 5 months ago

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: @.***>

daedric7 commented 5 months ago

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 commented 5 months ago

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 :)

lateautumn233 commented 5 months ago

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

RainmakerRaw commented 4 months ago

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!

timnolte commented 4 months ago

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 commented 4 months ago

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

timnolte commented 4 months ago

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.

lastsamurai26 commented 4 months ago

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 :-(

tgarif commented 3 months ago

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?

lateautumn233 commented 3 months ago

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?

Maybe it's related to this https://stackoverflow.com/questions/76348128/enabling-quic-http-3-on-multiple-domains-with-nginx-1-25