Nginx + PHP7缓慢的POST请求

时间:2016-08-04 17:33:20

标签: nginx http-post php-7 resumablejs

我创建了一个页面,通过分块上传将文件发送到我的服务器(ovh上的ssd类vps)。我正在使用Resumable.js(https://github.com/23/resumable.js)来实现这个目的,他们在他们的github项目(https://github.com/23/resumable.js/blob/master/samples/Backend%20on%20PHP.md)上有他们的例子来接收数据。它的工作原理非常慢,根据Chrome开发工具的要求,请求需要5-7秒才能发送"并需要另外6-8秒来接收第一个字节。

我试图分析php执行脚本需要多长时间,并且我的惊讶microtime()显示在执行脚本时没有时间过去(也就是相同的microtime值)。

在我的vps上,我有一个基于运行php7和fastcgi的nginx的设置。我做了几次尝试和其他PHP页面,我看到的上传分块上的延迟是不可见的(0.1毫秒作为请求时间和35毫秒TTFB)。

有人经历过类似的事情并且知道如何处理这个问题吗?可能是由于一些ddos保护?我在vps上用apache尝试了脚本,没有看到任何差异。本地相同的脚本就像魅力一样。这让我很怀疑:如果nginx和apache显示同样的问题,我可以认为这是一个脚本问题但是为什么本地更快?(相同的开发工具说3ms发送请求和2ms作为TTFB)

1 个答案:

答案 0 :(得分:0)

根据我的经验,解决此类问题的一个好方法是为测试和生产提供相同的设置。为了实现这一点,我使用Docker。我已经发布了一个有WordPress完整环境的帖子。用脚本替换WordPress脚本可能会让您获得一个可以在本地重现问题的设置。

如果能够重现该问题,请查看您的FPM参数。或者FPM连接的方式。我们最好的选择是它与传输或其他FPM设置有关。