我创建了一个页面,使用分块上传将文件发送到我的服务器(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)上以php页面为例来接收数据。它工作,但它是非常非常慢,根据Chrome Dev工具,请求需要5-7秒“发送”,并需要另外6-8秒来接收第一个字节。
我试图分析php执行脚本需要多长时间,令我惊讶的是,microtime()在执行脚本时没有显示经过的时间(也就是相同的microtime值)。
在我的vps上,我有一个基于nginx的设置,运行的是带有fastcgi的php7。我做了几次尝试和其他php页面,我在分块上传上看到的延迟是不可见的(请求时间为0.1ms,TTFB为35ms )。
有没有人经历过类似的事情,并知道如何处理?可能是由于某种ddos保护?我还在vps上使用apache尝试了该脚本,没有看到任何差异。同样的脚本在本地运行得很棒。这就是为什么我有很多疑问:如果nginx和apache显示了相同的问题,我可以假设这是一个脚本问题,但为什么本地更快呢?(相同的开发工具显示发送请求需要3ms,而TTFB需要2ms )
发布于 2016-10-05 01:45:06
根据我的经验,处理这些问题的一个好方法是为测试和生产获得相同的设置。为此,我使用Docker。我已经发布了一篇文章,它为WordPress ready提供了一个完整的环境。用您的脚本替换WordPress脚本可能会使您获得一个可以在本地重现该问题的设置。
如果能够重现该问题,请查看您的FPM参数。或建立FPM连接的方式。从我们所拥有的数据来看,最有可能的是与传输或其他FPM设置有关。
https://stackoverflow.com/questions/38773913
复制相似问题