我需要通过 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(使用前将#替换为@)