fzudust / docker-nginx-http3

Alpine Linux image with Nginx with HTTP/3 (QUIC), TLSv1.3, 0-RTT, brotli support. All built on the bleeding edge for max performance. Built on the edge, for the edge.

Home Page:https://hub.docker.com/r/ranadeeppolavarapu/nginx-http3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

docker-nginx-http3

Docker Pulls Docker Cloud Build Status Docker Cloud Automated build GitHub Contributor Covenant

Alpine Linux image with nginx with HTTP/3 (QUIC), TLSv1.3, 0-RTT, brotli support. All built on the bleeding edge. Built on the edge, for the edge.

HTTP/3 support provided from the smart people at CloudFlare with the cloudflare/quiche project.

Images for this are available on Docker Hub.

docker pull ranadeeppolavarapu/nginx-http3

Contributing

Contributions are welcome. Please feel free to contribute 😊.

Features

  • HTTP/3 (QUIC) via CloudFlare's quiche
  • HTTP/2 (with Server Push)
  • HTTP/2
  • BoringSSL (Google's flavor of OpenSSL)
  • TLS 1.3 with 0-RTT support
  • Brotli compression
  • headers-more-nginx-module
  • Alpine Linux (total size of 51 MB compressed)

Future Additions

Possible additions in the future pending IETF spec approvals.

HTTP/3 ENABLED!

Using Chrome Canary with the following CLI flags:

--flag-switches-begin --enable-quic --quic-version=h3-23 --enable-features=EnableTLS13EarlyData --flag-switches-end

Run on Mac OS (darwin):

"/Applications/Google Chrome Canary.app Contents/MacOS/Google Chrome Canary" \
  --flag-switches-begin \
  --enable-quic \
  --quic-version=h3-23 \
  --enable-features=EnableTLS13EarlyData \
  --flag-switches-end

HTTP/3 (QUIC) Proof

Since HTTP/3 is experimental, we have to be sensible with it. Therefore, below is HTTP/3 in production on one of my web apps 🙃.

h3

HTTP/2 with Server Push

alt

TLS v1.3

ssllabs

0-RTT Proof

tls-0-rtt

Testing 0-RTT

host=domain.example.com # Replace your domain.
echo -e "GET / HTTP/1.1\r\nHost: $host\r\nConnection: close\r\n\r\n" > request.txt
openssl s_client -connect $host:443 -tls1_3 -sess_out session.pem -ign_eof < request.txt
openssl s_client -connect $host:443 -tls1_3 -sess_in session.pem -early_data request.txt

About

Alpine Linux image with Nginx with HTTP/3 (QUIC), TLSv1.3, 0-RTT, brotli support. All built on the bleeding edge for max performance. Built on the edge, for the edge.

https://hub.docker.com/r/ranadeeppolavarapu/nginx-http3

License:MIT License


Languages

Language:Dockerfile 100.0%