我这里有一个问题,也许有人已经经历过这个问题.
系统控制器提供php下载,它从文件中读取信息并作为下载发送客户端.该系统运行良好.问题是速度始终很低,总是小于用户使用的300kb/se以上,小于100kb/s.
服务器有100mbps链接6mbps免费和客户有,然后它应该以600kb/s下载.有东西拿着php的输出.我试过搜索apache的缓冲区,但在这个问题上没有发现任何内容.
有谁知道可能会发生什么?
小智 6
PHP实际上不是为处理大文件而构建的.它必须将整个文件读入内存然后输出.听起来你通过PHP发送了合理的流量,如果100kb/s - 每个用户300kb/s太慢,通过类似的东西readfile()是个坏主意.相反,我建议看一下mod_xsendfile(如果你正在使用Apache)或者它等同于你选择的web服务器(例如我更喜欢nginx,并将XSendFile用于此).
在PHP中,你可以这样做:header('X-Sendfile: ' . $file);.服务器拦截标头,并发送该文件.它允许您使用PHP所做的好处,以及直接读取文件的Web服务器的速度.
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |