长URL适用于Python请求,但不适用于CURL或web浏览器(nginx-uwsgi-django)

长URL适用于Python请求,但不适用于CURL或web浏览器(nginx-uwsgi-django),nginx,url,get,uwsgi,Nginx,Url,Get,Uwsgi,我想让相对较长的URL在我的网站上工作 在Python中,它工作得非常好: 导入请求 基本url=https://myurl.com' client=requests.session() gs=['FAM20558-i1-1.1'] 对于[10010001100]中的i: r=client.get(url=f'{base_url}/api/validate genomes',params={'genomes[]':gs*i}) 打印(i,r.text) 输出: 100 {"succe

我想让相对较长的URL在我的网站上工作

在Python中,它工作得非常好:

导入请求
基本url=https://myurl.com'
client=requests.session()
gs=['FAM20558-i1-1.1']
对于[10010001100]中的i:
r=client.get(url=f'{base_url}/api/validate genomes',params={'genomes[]':gs*i})
打印(i,r.text)
输出:

100 {"success": true}
1000 {"success": true}
1100 <html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.14.1</center>
</body>
</html>
在nginx access.log中,我看到:

<MY IP> - - [04/Feb/2021:11:06:58 +0100] "-" 000 0 "-" "-" "-"
#编辑:我知道在这种情况下,POST请求更有意义。但是我希望在其他地方有长URL,这是一种方便的方法来证明这个问题。

如果我在CURL请求中指定了
--http1.1
,它就成功了!问题在于http2。在此处找到解决方案:

我必须在我的nginx配置中增加
http2\u max\u字段大小
http2\u max\u头大小

<MY IP> - - [04/Feb/2021:11:06:58 +0100] "-" 000 0 "-" "-" "-"
upstream django {
    server unix:///path/to/socket.sock;
}

server {
    listen       443 ssl http2 default_server;

    client_max_body_size        10M;

    uwsgi_buffer_size           128k;
    uwsgi_buffers               12 128k;
    uwsgi_busy_buffers_size     256k;

    client_header_buffer_size   5120k;
    large_client_header_buffers 16 5120k;

    location / {
        uwsgi_pass django;
        include /etc/nginx/uwsgi_params;
    }
}