large_client_header_buffers not working error 400 Bad request

Viewed 15

I've setup nginx/1.18.0 Ubuntu with the following parameters at http level:

http {
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;

    client_max_body_size 24M;
    client_body_buffer_size 128k;

    client_header_buffer_size 5120k;
    large_client_header_buffers 16 5120k;
}

If I remove the parameters then I get Error 414 (Request-URI Too Large).

I've tried to put the parameters at server level, I've removed all parameters from every server and left them on http level, also checked there is no default server, but nothing works. Always same error: 400. Debug logs:

2022/09/22 14:06:38 [debug] 1083638#1083638: *2 http process request line
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 http alloc large header buffer
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 malloc: 0000557BF591C880:65536
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 http large header alloc: 0000557BF591C880 65536
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 http large header copy: 1024
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 SSL_read: 15360
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 SSL_read: -1
...

2022/09/22 14:06:38 [debug] 1083638#1083638: *2 chain writer buf fl:1 s:18856
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 chain writer in: 0000557BF5910DF0
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 writev: 18856 of 18856
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 chain writer out: 0000000000000000
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 event timer del: 27: 1394198951
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 event timer add: 27: 1800000:1395997951
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 http upstream request: "/api/reports/get-data?data=U2FsdGVkX184fkBl4wAhRkbfDL...
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 http upstream process header
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 malloc: 0000557BF5911310:4096
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 recv: eof:1, avail:-1
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 recv: fd:27 28 of 4096
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 http proxy status 400 "400 Bad Request"
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 http proxy header done
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 xslt filter header
2022/09/22 14:06:38 [debug] 1083638#1083638: *2 HTTP/1.1 400 Bad Request
Server: nginx/1.18.0 (Ubuntu)

I've reviewed the proxy, which is a node.js application, it does not receive the request.

I've even tried with

    client_header_buffer_size 800M;
    large_client_header_buffers 16 800M;

And the result is the same. The same configuration with same node.js app, exactly same data, etc. was working properly in a nginx/1.10.3 (Ubuntu).

Please any help would be really appreciated.

0 Answers
Related