我为部署在普通共享托管服务器上的应用程序设置了一个应用程序代理(不是Heroku或类似的东西)。在我将内容类型设置为application / liquid之前,它就像魅力(就像我的其他应用程序一样)。
一旦我这样做,我就会得到由我的服务器(我的猜测)生成的nginx的411长度要求错误。我试图通过将内容长度设置为0来解决它。它工作了一段时间但后来停止了。我尝试了其他值,它的工作取决于它的情绪。有趣的是,有时输出会在内容长度被截断,有时我得到整个输出(简单的页面刷新可以提供不同的输出)。此外,有时它不起作用,shopify抛出“我们有技术。困难”的错误。
总而言之,内容长度根本不可靠。
现在我不确定是什么原因导致411错误,我该怎么办呢。为什么只有当内容类型是流动的时候才会抛出它。此外,content-length不会产生一致的输出(没有输出/可预测的输出/截断的输出/ shopify错误)。
任何人都知道发生了什么事?
答案 0 :(得分:1)
也许您的回复正在使用chunked transfer encoding。我不认为nginx默认支持这个,所以在这种情况下会返回411错误,因为chunked编码不使用Content-Length头。
如果您确实想使用分块响应,那么http://wiki.nginx.org/HttpChunkinModule模块应该添加对此的支持。否则,请在您的应用中禁用分块编码,并确保Content-Length标头与响应正文的长度一致。