curl - 在 Chrome、Firefox 和 cURL 上突然出现分块请求问题
问题描述
我的生产服务器似乎不知从何而来,在特定请求上出现了分块错误。服务器上没有更改任何配置文件,服务器上的其他任何内容都没有更改。我什至不确定从哪里开始调试此错误。
此分块错误仅发生在带有查询参数的 1 个 GET 请求上。
在 Chrome 上,错误是:
net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (Ok)
.
为了确保这不是 Chrome 特定的问题,我在 Firefox 上进行了尝试,但同样的事情发生了,尽管出现了不同的错误 SyntaxError: JSON.parse: unterminated string at line
。检查响应显示 Firefox 正在从请求中接收一些 JSON,但不是全部。
在服务器上,我使用 cURL 获取具有完全相同查询参数的 URL 并收到此错误:ncurl: (18) transfer closed with outstanding read data remaining
. 如果我使用 HTTP 1.0 没有任何变化,但如果我添加 header "Expect: "
,请求会在某个时候停止接收数据。
cURL 不是这里的问题,我需要这个请求来处理 Javascript AJAX 请求。提出此请求的文件已 7 个月未更改。
此请求的预期返回是来自数据库的 50 - 200 行。如果我直接对数据库进行 SELECT 查询,则没有问题。
我从哪里开始看?日志文件没有感兴趣的信息,服务器有足够的内存和 CPU。
我们的服务器是 Ubuntu 16.04 和 Apache 2.4。我们的 API 是 DreamFactory;那里的设置也没有改变。
解决方案
更改opcache.fast_shutdown=0
我的 php.ini 文件似乎已经解决了这个问题。zend_mm_heap corrupted
Apache 的 error_log在我遇到此问题的每个请求上都读取了一个新行。
看到这个问题
推荐阅读
- webpack - 面向 webworker 的 Webpack 不会导入依赖项的浏览器版本
- crystal-lang - 如何在 Crystal 中进行通用记忆?
- python - 使 Tkinter 中的标签可点击并在新的 Web 浏览器中打开 UrL
- javascript - 在 Chrome 中调试 javascript iframe 调用程序
- html - 无法在 Google Chrome 中寻找、倒带 html 音频播放器,它只是不起作用
- node.js - multer req 文件未定义,但为什么呢?
- algorithm - 给定一些数字,如何构建一个包含算术表达式的所有排列的高效树?
- python - 无法将背景图像与静态文件 Django 连接
- r - 在 Shiny 中按窗口宽度折叠和展开面板
- c++ - 读取输入时如何缩短代码?