uWSGI 中止回應,失去與 nginx 的連接

uWSGI 中止回應,失去與 nginx 的連接

我正在運行一個用 Python 編寫的小型 Web 應用程序,在 uWSGI 中運行並透過 nginx 提供服務。有一個元件可以產生用於下載的 ZIP 文件,該文件有時可能會很大(幾 GB)。常會出現nginx和uWSGI之間的連線斷開,請求中止的情況;當瀏覽器逾時時,nginx 會忽略被截斷的回應,因為它保持連線打開,等待更多回應資料。應用程式產生適當的 Content-Length 標頭。

來自uWSGI日誌:

uwsgi_response_write_body_do(): Broken pipe [core/writer.c line 429] during GET [...]
OSError: write error
SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request [...] !!!

我已經在uWSGI配置中設定了socket-timeout,socket-send-timeoutsocket-write-timeoutto ,但沒有效果。 180nginxconf 包括uwsgi_read_timeout 180s;uwsgi_buffering off;

該效果大多是可重複的,因為它在大多數情況下都會發生,尤其是在響應較大的情況下,但不會以相同的偏移量發生。一遍又一遍地重複請求最終可能會完成。

答案1

事實證明,我的應用程式和 nginx 都不是問題,而是兩者前面的資料包過濾器出現了故障。

相關內容