Today I got one annoying error after deploying the new version of the web application in nginx web server. Initially I thought the web app was buggy, but when I inspected the requests and response, I found the following error.
error code: 414, uri too large
On checking more details around this, I found that this issue can be fixed by adjusting few configurations in nginx. The parameter to modify is large_client_header_buffers.
This parameter sets the maximum
size of buffers used for reading large client request header. A request line cannot exceed the size of one buffer, or the 414 (Request-URI Too Large) error is returned to the client. A request header field cannot exceed the size of one buffer as well, or the 400 (Bad Request) error is returned to the client. Buffers are allocated only on demand. By default, the buffer size is equal to 8K bytes. If after the end of request processing a connection is transitioned into the keep-alive state, these buffers are released.
Syntax : large_client_header_buffers number size ;
The default value is 4 and the size is 8 KB. You can increase this value to a higher value to fix this issue.
large_client_header_buffers 16 128k;
If you are facing issues even after making these changes, then add the following configuration to the server block in nginx.
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;
Hope this helps 🙂 Please comment if you are facing any issues.