我刚刚将PageKit(mod_perl(应用程序转换为Plack。 这意味着我现在需要某种方法来强制执行 Apache2::Request 之前会处理的 POST_MAX/MAX_BODY。 最简单的方法可能是将nginx放在应用程序前面,但是该应用程序已经位于HAProxy后面,我不知道如何使用HAProxy执行此操作。
所以,我的问题是,如何在不先阅读请求的整个正文的情况下,在 Plack::Middleware 中强制执行最大正文?
具体来说,我关心文件上传。 通过 Plack::Request::Upload 检查大小为时已晚,因为此时整个正文已被读取。该应用程序将通过Starman部署,因此psgix.streaming
应该true
。
我通过Twitter收到了宫川达彦的回复。 他说:"如果你使用 Starman 部署,即使使用中间件也为时已晚,因为缓冲是开启的。我会用nginx来做"。
这回答了我处理Starman部署时的特殊问题。
他还指出,"在后端读取之前拒绝更大的上传可能会导致问题">