0

我为部署在普通共享托管服务器(不是 Heroku 或类似服务器)上的应用设置了应用代理。在我将内容类型设置为应用程序/液体之前,它就像一个魅力(就像我的其他应用程序一样)。

一旦我这样做了,我就会得到一个 411 Length Required 错误,这是由我的服务器生成的(我的猜测)。我试图通过将内容长度设置为 0 来解决它。它工作了一段时间,但后来停止了。我尝试了其他值,它取决于它的心情。有趣的是,有时输出会在内容长度处被截断,有时我会得到整个输出(简单的页面刷新可以给出不同的输出)。此外,有时它根本不起作用,shopify 会抛出“我们遇到技术困难”错误。

总而言之,内容长度根本不可靠。

现在我不确定导致 411 错误的确切原因以及我能做些什么。以及为什么仅在内容类型为液体时才抛出它。此外,内容长度不会导致一致的输出(无输出/可预测的输出/截断的输出/shopify 错误)。

有谁知道怎么回事?

4

1 回答 1

1

也许您的响应正在使用分块传输编码。我不认为 nginx 默认支持这个,所以在这种情况下会返回 411 错误,因为分块编码不使用 Content-Length 标头。

如果您确实想使用分块响应,那么http://wiki.nginx.org/HttpChunkinModule模块应该会添加对此的支持。否则,请在您的应用中禁用分块编码,并确保 Content-Length 标头与响应正文的长度一致。

于 2012-09-17T14:35:58.583 回答