在 nginx 中有以下指令client_max_body_size
:
设置客户端请求主体的最大允许大小,在“Content-Length”请求标头字段中指定。如果请求中的大小超出配置的值,则会向客户端返回 413(请求实体太大)错误。
正如它所说,当请求中提供了 Content-Length 时,会使用它。我使用 nginx 作为反向代理。不幸的是,我对特定 URI 的 nodejs 实现需要提供 POST 正文Transfer-Encoding: chunked
——否则它会中断。我仍然需要限制接受的正文大小以防止 DoS。如果正文中发送了太多字节,我希望 nginx 关闭连接。
nginx 有那功能?或者我最好在 nodejs 服务器上实现它?
答案1
幸运的是,client_max_body_size
它确实适用于Transfer-Encoding: chunked
请求。我在测试过程中发现了这一点。文档只是没有提到这一点。