It appears that no matter how big I set the value of large_client_header_buffers to be, nginx just doesn't care of the setting and still returns 414 on a long request.
I tried to make it 16k, 32k, 256k, and 512k, etc and POSTing a request with 1.5k long URL returns 414. It works when I reduce the request URI length to about 1k, regardless of the large_client_header_buffers value as well.
I also tried to set proxy_buffers to a large value and didn't help.
Is there any other settings I need to look at to make the nginx box take longer request URI without returning 414?