錯誤信息:
NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
錯誤背景:
微服務不通過統一的nginx端口訪問,能夠正常請求接口並獲取對應的響應。
但是通過nginx的話,則出現請求通(也就是響應200),但始終沒有得到正確的響應,提示上述錯誤 NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)。
解決辦法:
在nginx中的對應的反向代理配置如下內容,即可解決:
proxy_buffer_size 1024k; proxy_buffers 16 1024k; proxy_busy_buffers_size 2048k; proxy_temp_file_write_size 2048k;
我的反向代理完整配置:
location /forecast { proxy_pass http://127.0.0.1:9999/; proxy_buffer_size 1024k; proxy_buffers 16 1024k; proxy_busy_buffers_size 2048k; proxy_temp_file_write_size 2048k; }
錯誤原因分析:
1.nginx配置緩存區設置過小
2.nginx的臨時目錄(/proxy_temp)過大或沒有權限寫入緩存文件
3.磁盤空間不足
經過驗證是第一種原因(nginx配置緩沖區設置過小)
問:nginx的緩沖區作用是什么?
答:如果客戶端到nginx速度快,nginx到服務器速度慢,沒有緩沖區,一點點數據量就直接發到客戶端,十分浪費性能。
有了緩沖區,積累到一定量,再傳輸到客戶端,減少了Tcp請求。
相反,客戶端到nginx速度慢,nginx到服務器速度快,沒有緩沖區,
nginx到服務器的連接就會一直保持在那邊,直到客戶端接受完畢。
有了緩沖區,返回內容放到緩沖區后,nginx到服務器的連接就能斷開了,客戶端從緩沖區拉取即可。
參考解決辦法: