`listen` to `quic` AND `proxy_protocol`
Author: t0b3Created Jul 12, 2025Updated Sep 30, 2026
Labelsfeatureneeds-refinement
Describe the feature you'd like to add to nginx
- implement
listendirective forquicANDproxy_protocol
Describe the problem this feature solves
use a dedicated reverse proxy for quic handling multiple upstreams
example
#=== reverse proxy config ===
stream {
map $ssl_preread_server_name $upstream {
foo.example.org 127.0.0.1:8443;
bar.example.org 10.11.12.13:8443;
# ...
}
server {
listen 443;
proxy_pass $upstream;
ssl_preread on;
proxy_protocol on;
}
server {
listen 443 udp reuseport;
# proxy_pass $upstream;
# ssl_preread on;
### BUG: ssl_preread is broken
### WORKAROUND: disable until implemented, only pass to single upstream works
proxy_pass 127.0.0.1:8443;
# proxy_protocol on;
### BUG: proxy_protocol on quic is broken
### WORKAROUND: disable until implemented
}
}
#=== server config ===
http {
server {
server_name foo.example.org;
listen 127.0.0.1:8443 ssl proxy_protocol;
listen 127.0.0.1:8443 quic;
add_header Alt-Svc 'h3=":443"; ma=86400';
# ...
}
}nb: according to the docs
Syntax: listen address[:port] [default_server] [ssl] [http2 | quic] [proxy_protocol] ...quic and proxy_protocol can be used together... though this isn't implemented yet
Additional context
Source: nginx/nginx