1. ホーム
  2. django

django upstream が up からの応答ヘッダを読み込む際に接続を早々に切断してしまう。

2022-02-19 14:23:02
<パス

1.環境

django + uwsgi + Nginx

2. 解決方法

1. uwsgi.ini で、各 uwsgi プロセスが占有できる仮想メモリの上限である "limit-as" を設定する必要があります。
2. を確認します。

proxy_http_version 1.1;
proxy_set_header Connection "";

Nginx はデフォルトで HTTP1.0 を使ってバックエンドからクライアントにレスポンスを返しますが、HTTP1.0 は keepalive をサポートしていないので、proxy_version 1.1 と proxy_set_header Connection to close by default: バックエンドサーバに積極的に接続を閉じるように通知します。 これによって、どんなクライアントのリクエストもバックエンドサーバの TIME-WAIT 状態の接続を発生させることができるようになります。
3. uwsgiやNginxに設定されている各種タイムアウトが短すぎないか確認します。

3.参照先

  1. https://www.cnblogs.com/succour/p/6305574.html
  2. https://www.cnblogs.com/jackluo/p/3410739.html
  3. https://monicalent.com/blog/2013/12/06/set-up-nginx-and-uwsgi/