問題場景
tornado服務器,配置SLB+Nginx通過80端口訪問tornado服務器的時候發現前端很多比較大的js加載不完,出現報206 (Partial Content)錯誤(部分內容)服務器成功處理了部分 GET 請求。直接訪問相關js也發現內容確實只加載了一部分呢,點擊瀏覽器刷新,發現js內容會增多。當刷新多次之後發現js才能全部加載出來,頁面能正常顯示出來,但是清空緩存後,還是206錯誤,又要刷新很多次資源才加載完。
問題原因
Nginx代理之後會有相應的代理緩存區,緩存區默認只有幾十K,某些版本的nginx默認設置中沒有相關處理,導致部分文件代理是會出現加載不全的現象,其實不僅僅是JS文件。只是因爲框架的JS文件略大,所以經常出現類似問題。
問題解決
在Nginx.conf中添加
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
如:
禁止206的一篇文章 http://www.cocoachina.com/articles/57862
設置max_ranges 0;
location ~ \.mp4${
max_ranges 0;
}
原文鏈接:https://blog.csdn.net/tcf_jingfeng/article/details/80325644