我刚刚将PageKit(mod_perl)应用程序转换为Plack。这意味着我现在需要一些方法来强制执行Apache2::Reques之前已经处理过的POST_MAX / MAX_BODY。最简单的方法可能只是将nginx放在应用程序前面,但应用程序已经位于HAProxy后面,我不知道如何使用HAProxy执行此操作。
所以,我的问题是如何在Plack::Middleware强制执行最大体型而不首先阅读整个请求?
具体来说,我关注文件上传。通过Plack::Request::Upload检查大小为too late,因为此时已经读取了整个正文。该应用将通过Starman进行部署,因此psgix.streaming
should be true
。
答案 0 :(得分:3)
我通过Tatsuhiko Miyagawa收到了Twitter的回复。他说,"如果你使用Starman进行部署,即使使用中间件也为时已晚,因为缓冲已经开启。我是用nginx"来做的。
当我处理Starman部署时,这回答了我的特定问题。
He also noted" rejecting a bigger upload before reading it on the backend could cause issues in general"