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.
Description
This PR adds support for HTTP/3 with nginx.
It's not too different from HTTP/2, just a few more parameters and options in the vhost configs.
Support for HTTP/3 is only available in nginx 1.25+, which is currently only included in Ubuntu 24.10 (apparently this will be released just today :D), or of course can be installed via the packages provided by nginx directly.
There is only one small problem, which is why this PR is marked as a draft.
Just like with HTTP/2, the
Host
header is not required and some clients do not include this header in their request.This could be fixed by adding the following line to the
/etc/nginx/fastcgi_params
file:fastcgi_param HTTP_HOST $host;
This works pretty well for me, but could maybe cause issues for others(?)
$host
uses the host name from the request line, or host name from the “Host” request header field, or the server name matching a request in this order.Or, probably the preferred option, nginx "fakes" the Host header for HTTP/3 just like it does for HTTP/2 requests. See: https://mailman.nginx.org/pipermail/nginx-devel/2024-January/LCIUMLKCM2EBMEMTU3KXMW74AP2C4FYZ.html
However, this has not yet been implemented and I have also not found anything on whether this is actually planned or not.
Type of change
How Has This Been Tested?
Install nginx 1.25.0+, enable HTTP/3 in system settings, enable HTTP/3 per domain => clients should be able to use HTTP/3.
Test Configuration:
Checklist: