解决: Nginx 400 request line is too large (5132 4094)

2017-04-24

早些年 get 参数都是限制 256 个字符的。再长的话就用 POST。 由于,POST 遇到跨域访问。无法发送数据,只能选择 GET

开发环境下没有错误,部署到 Nginx + Gunicorn 的时候 发生了 400 错误

Nginx 400 request line is too large (5132 4094)

首先:

  • 检查 nginx 配置文件是否加入了下面的配置
client_header_buffer_size 512k;
large_client_header_buffers 4 512k;

接着:

  • 检查下 gunicorn 配置 gunicorn 默认限制 GTE 长度是 4094
$ gunicorn --help
  --limit-request-line INT
                        The maximum size of HTTP request line in bytes. [4094]

最后: 重启服务