当我让Nginx服务一个1.8 Gb的文件时,当我将url放在Chrome或Firefox中时,下载会与5 Mb/s一起下载,当我使用wget或curl、相同的URL、相同的客户端pc时,下载将与(我的最大值) 25 Mb/s一起下载。对于Apache来说,提供相同的文件时,它会同时使用浏览器和curl/wget。我的问题是:为什么?
这是一个相当默认的配置,我把limit_rate (apache2)或(Nginx)放在头中,我已经尝试了几次使用nginx,我可以用limit_rate来减缓它,但不能打开。这是启用/etc/nginx/site中默认链接的位置部分:
location files/ {
internal;
alias /var/www/html/;
#directio 100m;
output_buffers 2 512k;
limit_rate 30000k;
sendfile_max_chunk 0;
}我打开directio,在其他选项中忽略或离开,打开/关闭sendfile,没有区别。
发布于 2017-09-22 06:45:44
显然,Apache2会自动填写大小和文件类型的标题,而Nginx,如果没有指定,则使用text/html作为类型,而不使用size。
因此,补充如下:
header("Content-Type: application/octet-stream");
header("Content-length: {$result[0]->size}");加快了下载的一个因素~ 5,与我的最大。带宽。
https://serverfault.com/questions/874845
复制相似问题