Opened 8 years ago

Closed 8 years ago

#1027 closed defect (invalid)

HTTP2 Long URL issues

Reported by: notpeter@… Owned by:
Priority: minor Milestone:
Component: nginx-core Version: 1.10.x
Keywords: http2 Cc:
uname -a: Linux dev 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
nginx -V: nginx version: nginx/1.10.1
built by gcc 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2)
built with OpenSSL 1.0.2g-fips 1 Mar 2016
TLS SNI support enabled


Long URLs appear to be broken with HTTP2. The threshold I've observed when things are broken with Chrome and Firefox is 5047byte URLs (with 24 chars of https and hostname). These URLs work properly with http 1.1 (plain http and https) but with http2 enabled nginx consistently returns a 400 for long urls.

While testing the following (aggressively permissive) buffer settings are defined at the server block level.

client_header_buffer_size 64k;
large_client_header_buffers 4 32k;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;

For example my URLs include base64 encoded json (JWT) data:

I'm running binaries from the official nginx repo debs on ubuntu xenial.

Change History (2)

comment:1 by Ilyas Bakirov, 8 years ago

Does it work with 64k in large_client_header_buffers?

client_header_buffer_size 64k;
large_client_header_buffers 4 64k;

comment:2 by Valentin V. Bartenev, 8 years ago

Resolution: invalid
Status: newclosed

These settings are irrelevant to the HTTP/2 module.

Please, read the documentation of the http2_max_field_size directive:

Note: See TracTickets for help on using tickets.