我的生产服务器在一个特定的请求中突然出现了一个分块错误。服务器上没有修改配置文件,服务器上的其他东西也没有改变。我甚至不知道该从哪里开始调试这个错误。
这个chunking错误只发生在1个带有查询参数的GET请求上。
在Chrome上,错误是::net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (Ok)
.
为了确保这不是Chrome浏览器特有的问题,我在Firefox上试了试,但同样的事情也发生了,尽管出现了不同的错误SyntaxError。JSON.parse: unterminated string at line
. 检查响应显示,Firefox从请求中接收了一些JSON,但不是全部。
在服务器上,我使用cURL以完全相同的查询参数来GET URL,得到了这个错误。ncurl: (18) transfer closed with outstanding read data remaining
. 如果我使用HTTP 1.0,没有任何变化,但如果我添加了头信息 "Expect: "
在某些时候,该请求停止接收数据。
cURL不是这里的问题,我需要这个请求与Javascript AJAX请求一起工作。提出这个请求的文件已经7个月没有被修改了。
这个请求的预期返回是来自数据库的50-200行。如果我直接对数据库进行SELECT查询,就没有问题。
我应该从哪里开始查找呢?日志文件没有任何感兴趣的信息,服务器的内存和cpu也很充足。
我们的服务器是Ubuntu 16.04,Apache 2.4。我们的API是DreamFactory,那里的设置也没有改变。
看起来你有一个防火墙或反病毒运行。试着在关闭或暂停杀毒软件的情况下拨打电话?