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

早些年 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]
    

最后: 重启服务