http2 error: Invalid HTTP header field was received:

Johnatan Hallman johnatan-ftm at
Tue May 23 14:51:02 UTC 2023

Hello List,

I have a setup where I put an ancient host running a perl-cgi app behind an nginx reverse proxy.

The http reverse proxy works fine however if I try:

curl -v --anyauth -k  https://app.test.lan/cgi-bin/

I get:

http2 error: Invalid HTTP header field was received: frame type: 1, stream: 3, name: [defined(%hash) is deprecated at line 14.], value: []

However if I define http1.1 it works fine:

curl -v --http1.1 --anyauth -k  https://app.test.lan/cgi-bin/

I guess all modern browsers default to http2 these days so that I can specify it for curl is not a big help. I need this to work out of the box.

I have read that Nginx with the listen       443 ssl http2; directive will downgrade the connection to http1.1 automatically if it's negotiated... otherwise my previous test wouldn't work at all.

What I have tried is adding this version directive into the location:

        location / {
                proxy_http_version 1.1;

Makes no difference. Any idea how to fix this without touching the original app or the original webserver.


More information about the nginx mailing list