2017-04-12 3 views
1

私はGunicornのon_exitフックを知っていますが、これを使用して最終的な応答に "Connection:Close" HTTPヘッダーを追加する方法や確認方法が不明です。Gunicornでは、サーバーのシャットダウンが開始されたら、どのようにConnection:Closeを応答に追加できますか?

これは、Nginxが "502 Bad Gateway"エラーを出すため、上流Nginxプロキシにシャットダウンを知らせるためです。

答えて

1

Gunicornはワーカーフックを提供しています。このフックは、この例では、ワーカーがシャットダウンしているときにConnection:closeヘッダーを送信するために使用できます。

def pre_request(worker, req): 

    if not worker.alive: 
     header_dict = dict(req.headers) 
     header_dict['CONNECTION'] = 'close' 
     req.headers = header_dict.items() 

Gunicornはタプルのリストとしてヘッダを格納し、そう、dictonaryに変換上書き/のリストとしてバックオブジェクトに接続ヘッダーと場所を挿入する方が簡単だった:あなたgunicorn.confファイルに次のフックを試してみてくださいタプルは一度やった。

関連する問題