どのように優雅にワーカープロセスをシャットダウンするには?

私たちはnginxのコマンドラインを説明する前に、次の2つのそれぞれnginxのを、停止する方法がある見ることができるnginx -s quitnginx -s stopすぐにnginxのを止める停止手段をして終了がエレガント閉じnginxのを意味し、信号に対応する同じであり、そして私たちの以前にホットリロードを言及し、このようなプロセスは、エレガント停止nginxのを必要とするアップグレードしてください。

プロセス、それが何であるかという、いわゆるエレガントストップnginxのは、私はバーの下に一緒に学びましょう。

エレガントなクローズとは何ですか?

優雅に対するワーカープロセスの観点から、いわゆるシャットダウンは、唯一のワーカープロセスが要求を処理しているため。この時間はとても正常にシャットダウン、ユーザーはエラーを受け取りつながる近いリンクに直接、役割を要求するためにどのような接続我々は、接続時間を扱っている場合は、どんなにが処理されている現在の接続要求を認識することができませんnginxのワーカープロセスを指しこの時間は、接続が閉じられています。

nginxのは、このような通信がWebSocketの後ろの内側にフレーム枠を行った場合nginxのプロキシのWebSocketプロトコルとして正常シャットダウンワーカープロセスを、実行することはできませんいくつかの要求の場合、nginxのは、彼のチンを解決しない。nginxのは、TCPやUDP層はバック層だったんときに、エージェントは、必要な経験を超えることが要求パケットの数を確認する方法はありません。しかし、HTTPリクエストのために、nginxのはとても優雅に主にターゲットにHTTPリクエストをシャットダウンしないことができます。

私たちが優雅に見てワーカープロセスをシャットダウン次は何のプロセスです。

エレガントなクローズドプロセス

優雅には、ワーカープロセスをシャットダウン

最初のステップは、タイマがworker_shutdown_timeout nginx.confに設定することができた後に設定され、完成した構成のworker_shutdown_timeout、エレガントな閉鎖を入力するプロセスを示すフラグを追加します。

第二のステップは、プロセスが新しい接続に行くことはありませんワーカープロセスことを確実にするために、モニターのハンドルをオフにします。

次は、最初のリソースの使用を確実にするnginxの順序は、多くの場合、いくつかの無料接続を保存し、最大化が、切断されていないので、これはアイドル状態の接続が閉じていることを初めてとなる、接続プールが表示されます。

第四のステップでは、nginxのは直ちに閉じアクティブではないので、非常に時間のかかる工程となるフラグを追加することにより最初のステップであり、そして、要求が処理されるたびに、それが使用する接続要求がオフになりますループに見出さ離れて、そのすべての時間が非常に長くなる可能性が閉ループを待ちます。セットworker_shutdown_timeout時間は、要求が処理されていない場合でも、優雅に言う半分しか完全にシャットダウンすることで、これらの要求が閉鎖を余儀なくされている時間は、接続部が直ちに停止されたとき。

したがって、次の2つの条件に:全てのサイクルが正常にシャットダウンするために接続されている場合、またはworker_shutdown_timeoutタイマーに達した後、ワーカープロセスはすぐに終了します。

概要

この記事では、非常に多くの場合、私たちはこの1つの特徴失敗は、私たちはnginxのを考慮する必要があり、この時点であるべき接続を決定する能力を持っているので際には、そのような機能をオフnginxのエレガントなターンを使用するプロセスワーカープロセスがエレガントシャット説明します右はオフにし、または何かがうまくいかない場合は、いくつかのモジュールまたは一部のクライアントには、このような通常のアウト終了することがnginxの古いワーカープロセスを確保するためにworker_shutdown_timeoutなど、いくつかの例外的措置を、持っているnginxのニーズを通常の要求を処理することはできません。

おすすめ

転載: www.cnblogs.com/wupeixuan/p/12077344.html