Opened 7 weeks ago
Closed 7 days ago
#2484 closed defect (invalid)
When reuseport is not present with listen 443 quic, only HTTP/2 works not HTTP/3
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | minor | Milestone: | nginx-1.25 |
Component: | http/3 | Version: | 1.23.x |
Keywords: | reuseport | Cc: | |
uname -a: | Linux hostname.com 5.15.0-1032-oracle #38-Ubuntu SMP Thu Mar 23 19:30:10 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux | ||
nginx -V: |
nginx version: nginx/1.23.4 (quic-8347620e0e76-BoringSSL-2e13e36e7477cfe2ef48312634b1c34103da4899-brotli-more-njs-geoip-modsec-20230414155654)
built by gcc 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04) built with OpenSSL 1.1.1 (compatible; BoringSSL) (running with BoringSSL) TLS SNI support enabled configure arguments: --build=quic-8347620e0e76-BoringSSL-2e13e36e7477cfe2ef48312634b1c34103da4899-brotli-more-njs-geoip-modsec-20230414155654 --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --with-threads --with-stream --with-stream_ssl_module --with-stream_ssl_preread_module --with-stream_realip_module --with-stream_geoip_module=dynamic --with-http_slice_module --with-mail --with-mail_ssl_module --with-compat --with-file-aio --with-http_v2_module --with-http_v3_module --with-stream_quic_module --add-module=/usr/local/src/ngx_brotli --add-module=/usr/local/src/headers-more-nginx-module-0.34 --add-module=/usr/local/src/njs/nginx --add-dynamic-module=/usr/local/src/ngx_http_geoip2_module --add-dynamic-module=/usr/local/src/ModSecurity-nginx --with-cc-opt=-I../boringssl/include --with-ld-opt='-L../boringssl/build/ssl -L../boringssl/build/crypto' |
Description
listen 443 quic;
If reuseport is not present with the above listen line, then only HTTP/2 works not HTTP/3. Add reuseport then it works fine. (chrome/firefox).
debug log:
2023/04/14 17:16:24 [debug] 188209#188209: *1 free: 0000AAAAFFA50830, unused: 2888 2023/04/14 17:16:24 [debug] 188209#188209: *1 free: 0000AAAAFFAB8130 2023/04/14 17:16:24 [debug] 188209#188209: quic recvmsg on 0.0.0.0:443, ready: 1 2023/04/14 17:16:24 [debug] 188209#188209: posix_memalign: 0000AAAAFF9D3E00:512 @16 2023/04/14 17:16:24 [debug] 188209#188209: malloc: 0000AAAAFFA50830:1250 2023/04/14 17:16:24 [debug] 188209#188209: *3 quic recvmsg: 220.233.6.16:13281 fd:10 n:1250 2023/04/14 17:16:24 [debug] 188209#188209: *3 http3 init session 2023/04/14 17:16:24 [debug] 188209#188209: *3 posix_memalign: 0000AAAAFFA50D20:512 @16 2023/04/14 17:16:24 [debug] 188209#188209: *3 add cleanup: 0000AAAAFFA50EE0 2023/04/14 17:16:24 [debug] 188209#188209: *3 event timer add: 10: 180000:11113282 2023/04/14 17:16:24 [debug] 188209#188209: *3 quic run 2023/04/14 17:16:24 [debug] 188209#188209: *3 quic packet rx long flags:c4 version:1 2023/04/14 17:16:24 [debug] 188209#188209: *3 quic packet rx init len:1232 2023/04/14 17:16:24 [debug] 188209#188209: *3 quic packet rx dcid len:8 80be092b143c86cd 2023/04/14 17:16:24 [debug] 188209#188209: *3 quic packet rx scid len:0 2023/04/14 17:16:24 [debug] 188209#188209: *3 quic address validation token len:0 2023/04/14 17:16:24 [debug] 188209#188209: *3 sendmsg: 107 of 107 2023/04/14 17:16:24 [debug] 188209#188209: *3 quic retry packet sent to 2023/04/14 17:16:24 [debug] 188209#188209: *3 quic packet done rc:-4 level:init decr:0 pn:0 perr:0 2023/04/14 17:16:24 [debug] 188209#188209: *3 quic packet rejected rc:-4, cleanup connection 2023/04/14 17:16:24 [debug] 188209#188209: *3 reusable connection: 0 2023/04/14 17:16:24 [debug] 188209#188209: *3 run cleanup: 0000AAAAFFA50EE0 2023/04/14 17:16:24 [debug] 188209#188209: *3 event timer del: -1: 11113282 2023/04/14 17:16:24 [debug] 188209#188209: *3 free: 0000AAAAFFA50830 2023/04/14 17:16:24 [debug] 188209#188209: *3 free: 0000AAAAFF9D3E00, unused: 8 2023/04/14 17:16:24 [debug] 188209#188209: *3 free: 0000AAAAFFA50D20, unused: 40 2023/04/14 17:16:24 [debug] 188209#188209: quic recvmsg() not ready (11: Resource temporarily unavailable) 2023/04/14 17:16:24 [debug] 188209#188209: *1 http2 idle handler 2023/04/14 17:16:24 [debug] 188209#188209: *1 reusable connection: 0 2023/04/14 17:16:24 [debug] 188209#188209: *1 posix_memalign: 0000AAAAFF9CA1E0:4096 @16 2023/04/14 17:16:24 [debug] 188209#188209: *1 http2 read handler 2023/04/14 17:16:24 [debug] 188209#188209: *1 SSL_read: 158 2023/04/14 17:16:24 [debug] 188209#188209: *1 SSL_read: -1 2023/04/14 17:16:24 [debug] 188209#188209: *1 SSL_get_error: 2
Note:
See TracTickets
for help on using tickets.
Please provide the full relevant nginx config w.r.t. the listen directives.