我已经用了一年多的时间了,我用Gunicorn WSGI服务器将我的Flask应用部署到生产中。最近我遇到了一个奇怪的错误,
<html>
<head>
<title>Bad Request</title>
</head>
<body>
<h1><p>Bad Request</p></h1>
Request Line is too large (4269 > 4094)
</body>
</html>我在大多数GET请求中遇到了这个错误。
在调试过程中,我知道了,我需要增加Gunicorn中的--limit-request-line配置,在8190中增加这个配置之后,我就能够成功地看到来自Dockerfile应用程序的响应。
我所做的修改是
CMD gunicorn app:app -w 2 --threads 50 -b 0.0.0.0:8080 --limit-request-line 8190 --capture-output --log-level info我的问题是,为什么http request line size/length突然增加,因为我在过去40天没有重新部署我的Gunicorn应用程序,所以Gunicorn版本没有改变。服务器完美地返回了39天的响应,然后突然给了我这个错误。
对此有什么想法吗?
Edit1:我发现问题是由于多个过滤器值而形成的大get请求造成的。
发布于 2022-11-22 15:07:16
将--limit-request-line设置为0。这将允许无限的请求长度。但是,在代码中添加请求大小验证以避免任何安全风险。
https://stackoverflow.com/questions/72129004
复制相似问题