如何设置gunicorn limit_request_line参数超过8190?

2023-11-24

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

该常量是硬编码的here并使用here.

我该如何重新定义这种行为?


如果将该值设置为零,Gunicorn 会将其视为无限制。从the docs:

limit_request_line

  • --limit-request-line INT
  • 4094

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

该参数用于限制客户端HTTP允许的大小 请求行。由于请求行由 HTTP 方法、URI、 和协议版本,该指令对 服务器上允许的请求的请求 URI 的长度。一台服务器 需要该值足够大以容纳其任何资源名称, 包括可能在查询部分传递的任何信息 获取请求。值为 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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置gunicorn limit_request_line参数超过8190? 的相关文章

随机推荐