如果有效负载大于 1MB,Nginx 会发送空响应


Nginx sends empty response if payload is larger than 1MB

我有一个WordPress网站,它定期通过ajax调用请求大型json有效负载。它在大多数情况下都能正常工作,直到 json 的大小达到临界大小(大约 1MB),此时 nginx 使用 http 200 代码但响应正文为空。我已经使用日志验证了 php 输出正确的响应,所以我相信断开连接介于 nginx 和 php-fpm 之间。我已经在多个浏览器中复制了这种情况,并从命令行使用 curl。

我在另一台计算机上复制了nginx和php-fpm的配置和版本,并且无法复制那里的问题。唯一的区别是非功能性服务器运行的是 Ubuntu 12.04.3 LTS,而正常运行的服务器运行的是 Ubuntu 12.10。我被引导相信这不是nginx/php的配置问题,而是导致问题的其他原因。对于还有什么要看的建议?

一种潜在的探索途径是增加缓冲区大小。我过去经历过这样的情况:超过缓冲区的超大 cookie 或标头值以非常相似的方式破坏页面。