当试图下载一个大文件(不知道什么大小就足够了,试图下载5Gb),连接卡住了:
$ wget --verbose http://example.net/large.zip -O /dev/null --2016-12-14 12:52:38-- http://example.net/large.zip Resolving example.net (example.net)... 1.2.3.4 Connecting to example.net (example.net)|1.2.3.4|:80... connected. HTTP request sent, awaiting response...
而这是永恒的,至less我是说10分钟。
这种文件的nginxconfiguration:
location ~* ^.+\.(css|js|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { access_log off; log_not_found off; expires 7d; }
小的静态文件(和小我的意思是例如50Mb的)都很好。
closuresaccess_log; 到“开”没有帮助,这个请求上没有任何logging。
将文件types从zip更改为其他types不起作用。
最奇怪的是,如果我开始下载,并重新启动nginx后,下载开始就好了。 但只有这一个。 如果在服务器重新启动后启动另一次下载,则不能以相同的方式工作。
答案似乎是在这些链接。 一 , 二 基本上,禁用磁盘caching
location / { proxy_max_temp_file_size 0; }
糟糕,我的错误。
在这台服务器前面configuration了一个CDN。 在开始提供这些文件之前,需要花费太多时间来完成这些文件。 这就是为什么我重新启动nginx时立即开始下载。 CDN正在提供不完整的文件。