Nginx做反向代理的时候消耗后端流量异常的处理办法

桜庭清夏 · 2021-05-12 09:37:58 


自己搭建了一个静态文件服务器,文件不大,几百M,网络很差,用了一个nginx反代。

某天下载的时候突然发现,下载了一个100M的文件,服务器居然消耗了10多个G的流量,仔细观察发现无论客户端请求多少文件,nginx都会拼命下载。这下载模式并不是nginx反代缓存模式。理应不会出现这种看似是缓存的模式。

经过搜索,从此处得到了解决答案,是反代没提交range的头,结果每次nginx都会请求一个完整文件,取出其中一部分给客户,剩下丢掉,继续请求一个完整文件….此操作确实会导致DDOS,用户只要1KB,反复请求,也就会爆掉服务器。

反代处添加如下代码

proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_no_cache $http_range $http_if_range;

重载nginx即可解决。


你是否会像清风拂过花儿一样与我相遇呢?