Opened 3 years ago

Closed 2 years ago

Last modified 2 years ago

#2075 closed defect (fixed)

nginx-quic with WordPress

Reported by: ikoctya@… Owned by:
Priority: major Milestone:
Component: nginx-core Version: 1.19.x
Keywords: Cc:
uname -a: Linux yellow.garant.tv 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
nginx -V: nginx version: nginx/1.19.4
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.1.1 (compatible; BoringSSL) (running with BoringSSL)
TLS SNI support enabled
configure arguments: --prefix=/opt/nginx --with-file-aio --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_auth_request_module --with-http_random_index_module --with-http_perl_module --with-mail --with-stream --with-stream_ssl_module --with-google_perftools_module --without-http_uwsgi_module --without-http_scgi_module --with-threads --with-file-aio --with-http_v2_module --with-http_realip_module --with-http_geoip_module --with-http_sub_module --with-http_mp4_module --with-google_perftools_module --http-client-body-temp-path=/var/nginx/client_body_temp --http-proxy-temp-path=/var/nginx/proxy_temp --http-fastcgi-temp-path=/var/nginx/fastcgi_temp --add-module=/usr/src/ngx_brotli --add-module=/usr/src/ngx_webp --add-module=/usr/src/incubator-pagespeed-ngx --with-cc-opt=-I../boringssl/include --with-ld-opt='-L../boringssl/build/ssl -L../boringssl/build/crypto' --with-http_v3_module --with-http_quic_module --with-stream_quic_module --with-openssl-opt=enable-tls1_3 --with-stream=dynamic --with-stream_ssl_module --with-stream_quic_module --with-stream_realip_module --with-stream_geoip_module --with-stream_geoip_module=dynamic --with-stream_ssl_preread_module --with-mail --with-mail=dynamic --with-mail_ssl_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_stub_status_module --with-http_slice_module --with-http_degradation_module --with-http_secure_link_module --with-http_random_index_module --with-http_gunzip_module --with-http_mp4_module --with-http_flv_module --with-http_dav_module --with-http_sub_module --with-http_geoip_module --with-http_geoip_module=dynamic --with-http_image_filter_module --with-http_image_filter_module=dynamic --with-http_xslt_module=dynamic --with-http_xslt_module --with-http_addition_module --with-http_realip_module --with-poll_module --with-select_module

Description (last modified by ikoctya@…)

if add options,

listen 443 quic http3;
listen 443 ssl;
add_header alt-svc 'quic=":443"'; # Advertise that QUIC is available
add_header QUIC-Status $quic;     # Sent when QUIC was used
add_header alt-svc 'h3-29=":443"; ma=86400';

quic/http3 work on my wordpres site, but:

1) first page opens with http2 protocol, after this, if i go to the second page - wow! quic/http3 begin work and work in furher.

2) wordpress login page issues error: "ОШИБКА: Cookies либо заблокированы, либо не поддерживаются вашим браузером. Чтобы использовать WordPress, нужно разрешить cookies."

Translate: ERROR: Cookies are either blocked or are not supported by your browser. To use WordPress, you need to enable cookies.

if i comment headers

#add_header alt-svc 'quic=":443"'; # Advertise that QUIC is available
#add_header QUIC-Status $quic; # Sent when QUIC was used
#add_header alt-svc 'h3-29=":443"; ma=86400';

then wp login work normally, but http3 in my Chrome and Mozilla not works.

Attachments (1)

quic-wordpres-login.png (12.0 KB ) - added by ikoctya@… 3 years ago.
wp login

Download all attachments as: .zip

Change History (7)

by ikoctya@…, 3 years ago

Attachment: quic-wordpres-login.png added

wp login

comment:1 by ikoctya@…, 3 years ago

Description: modified (diff)

comment:2 by Roman Arutyunyan, 3 years ago

Can you check if the server sends HTTP trailers? To do that, set up debug logging, switch to HTTP/1 (comment out those lines) and search for the lines in log starting with http trailer:.

in reply to:  2 ; comment:3 by ikoctya@…, 3 years ago

Replying to Roman Arutyunyan:

Can you check if the server sends HTTP trailers? To do that, set up debug logging, switch to HTTP/1 (comment out those lines) and search for the lines in log starting with http trailer:.

"http trailer: " in logs cannot find.

Debug is enabled, part of log:

2020/11/19 13:39:42 [info] 10320#10320: *893413 client sent invalid header line: ":path: navigate" while reading client request headers, client: 93.171.182.182, server: glazovlife.ru, request: "GET /wp-login.php HTTP/3"
2020/11/19 13:39:42 [info] 10320#10320: *893413 client sent invalid "Content-Length" header while reading client request headers, client: 93.171.182.182, server: glazovlife.ru, request: "GET /wp-login.php HTTP/3"
2020/11/19 13:39:42 [warn] 10320#10320: *893413 non-absolute path "on" not pushed while reading client request headers, client: 93.171.182.182, server: glazovlife.ru, request: "GET /wp-login.php HTTP/3"
2020/11/19 13:39:42 [info] 10320#10320: *893414 client sent invalid header line: ":path: image" while reading client request headers, client: 93.171.182.182, server: glazovlife.ru, request: "GET /favicon.ico HTTP/3"
2020/11/19 13:39:42 [notice] 10320#10320: *893414 "/wp-admin$" does not match "/favicon.ico", client: 93.171.182.182, server: glazovlife.ru, request: "GET /favicon.ico HTTP/3", referrer: "https://glazovlife.ru/wp-login.php"
2020/11/19 13:39:42 [info] 10320#10320: [ngx_pagespeed 1.13.35.2-0] Trying to serve rewritten resource in-place: https://glazovlife.ru/favicon.ico
2020/11/19 13:39:42 [notice] 10320#10320: *893414 "/wp-admin$" does not match "/index.php", client: 93.171.182.182, server: glazovlife.ru, request: "GET /favicon.ico HTTP/3", referrer: "https://glazovlife.ru/wp-login.php"
2020/11/19 13:39:42 [info] 10320#10320: [ngx_pagespeed 1.13.35.2-0] Trying to serve rewritten resource in-place: https://glazovlife.ru/favicon.ico
2020/11/19 13:39:42 [info] 10320#10477: [ngx_pagespeed 1.13.35.2-0] https://glazovlife.ru/favicon.ico:1880:Unexpected close-tag `div', no tags are open

in reply to:  3 comment:4 by ikoctya@…, 3 years ago

Replying to ikoctya@…:

Replying to Roman Arutyunyan:

Can you check if the server sends HTTP trailers? To do that, set up debug logging, switch to HTTP/1 (comment out those lines) and search for the lines in log starting with http trailer:.

Switched to http 1, enabled debug. No http_trailers in logs

comment:5 by Sergey Kandaurov, 2 years ago

Resolution: fixed
Status: newclosed

comment:6 by Sergey Kandaurov, 2 years ago

See also #2266.

Note: See TracTickets for help on using tickets.