长URL适用于Python请求,但不适用于CURL或web浏览器(nginx-uwsgi-django)
我想让相对较长的URL在我的网站上工作 在Python中,它工作得非常好:长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=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;
}
}