如何在8190上设置gunicorn limit_request_line参数?

Roo*_*osh 3 python gunicorn

我需要通过Gunicorn将大文本片段发布到Web应用程序。但是Gunicorn拒绝请求行超过8190字节的请求。

此常数在此处进行硬编码并此处使用。

如何重新定义此行为?

Ble*_*der 6

如果将值设置为零,则Gunicorn会将其视为无限制。从文档

limit_request_line

  • --limit-request-line INT
  • 4094

HTTP请求行的最大大小(以字节为单位)。

此参数用于限制客户端的HTTP请求行的允许大小。由于请求行由HTTP方法,URI和协议版本组成,因此该指令对服务器上允许请求的请求URI的长度进行了限制。服务器需要此值足够大以容纳其任何资源名称,包括可能在GET请求的查询部分传递的任何信息。值是从0(无限制)到8190的数字。

此参数可用于防止任何DDOS攻击。

如果您需要将其设置为高于8190的某个值,则必须更改源代码或围绕Gunicorn的主脚本构建一个简单的包装程序来修补该值(尽管由于该程序使用内部API,所以在升级时您可能会遇到破坏的危险) ):

# patched_gunicorn_runner.py

from gunicorn.http import message
message.MAX_REQUEST_LINE = 2**16 - 2

from gunicorn.app.wsgiapp import run
run()
Run Code Online (Sandbox Code Playgroud)

  • @aldoblack:该错误消息根本不包含任何有用的信息... (2认同)