feat(nginx): enable HTTP/3 (QUIC) support#124
Merged
Merged
Conversation
Add HTTP/3 support alongside existing HTTP/2. Browsers that support QUIC will upgrade automatically via the Alt-Svc header, while older clients fall back to HTTP/2. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Closed
Contributor
There was a problem hiding this comment.
Pull request overview
Enables HTTP/3 (QUIC) support in the repo’s top-level NGINX proxy configuration by turning on HTTP/3, adding QUIC listeners on 443, and advertising availability via Alt-Svc.
Changes:
- Enable
http2 on;andhttp3 on;globally innginx.conf. - Add
listen 443 quic(and IPv6 equivalents) across HTTPS server blocks. - Introduce
http3-headers.confand include it where headers are configured.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| nginx/configurations/nginx.conf | Enables HTTP/2 and HTTP/3 globally in the http {} block. |
| nginx/configurations/security.conf | Adds global include of http3-headers.conf alongside existing security headers. |
| nginx/configurations/http3-headers.conf | Adds Alt-Svc header advertising HTTP/3. |
| nginx/configurations/conf.d/default.conf | Adds QUIC listeners (including reuseport on the default-drop server). |
| nginx/configurations/conf.d/blog.conf | Adds QUIC listeners and includes http3-headers.conf in the proxied location. |
| nginx/configurations/conf.d/auth.conf | Adds QUIC listeners and includes http3-headers.conf in the proxied location. |
| nginx/configurations/conf.d/admin.conf | Adds QUIC listeners and includes http3-headers.conf in the proxied location. |
| nginx/configurations/conf.d/game-2048.conf | Adds QUIC listeners and includes http3-headers.conf in the proxied location. |
Ensures unknown HTTP/3 traffic is routed to the drop-connection server block, matching the behavior of the SSL listen directives. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3 tasks
Soulike
added a commit
that referenced
this pull request
Mar 5, 2026
## Summary - Expose UDP port 443 on the nginx service for QUIC/HTTP3 traffic - The existing `'443:443'` only mapped TCP; QUIC requires UDP on the same port ## Context Follow-up to #124 (HTTP/3 nginx config). Without this change, QUIC packets cannot reach nginx even with the correct nginx configuration. ## Test plan - [ ] `docker compose config` validates successfully - [ ] After deployment, verify UDP 443 is reachable: `nmap -sU -p 443 soulike.tech` - [ ] HTTP/3 works end-to-end: `curl -I --http3 https://soulike.tech` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
listen 443 quicdirectives to all HTTPS server blockshttp2 onand addhttp3 onglobally innginx.conf(removes duplication from individual server blocks)http3-headers.confwithAlt-Svcheader to advertise HTTP/3 availability to browsersNotes
nginx:stable-alpine(1.26+) has HTTP/3 built inTest plan
nginx -tconfig validationAlt-Svcheader is present:curl -I https://soulike.techcurl -I --http3 https://soulike.tech🤖 Generated with Claude Code