upstream prematurely closed connection while reading response header from upstream, client: 10.16.151.131, server: localhost, request: "POST /hsvltnprjct/predict/ HTTP/1.1", upstream: "http://10.16.195.51:8080/hsvltnprjct/predict/", host: "api.web"
1.問題描述
通過postman調用django后端服務接口,返回如下頁面,但是只是偶爾返回,有時正常響應
查看nginx報錯日志,如下:
2.問題解決
通過網上百度各種方案,如下:
- 增加keepalive 30000; 無效
- 修改proxy_buffer_size參數,也無效
- 關閉proxi_buffering=off; 也無效
突然想到不一定是nginx的問題,是不是后端服務問題呢?
- 測試1:穿過nginx直接訪問uwsgi啟動的nginx服務,發現服務無響應的概率幾乎60%。
- 測試2:直接通過python manage.py啟動服務,訪問服務發現一切正常
由上反映出問題不在nginx,在uwsgi,這樣就好處理了
修改uwsgi配置文件,將buffer-size=32768改為3276800
buffer-size=3276800
重啟服務,再次訪問,服務回歸正常。不容易,坑太多了