nginxのスムーズなアップグレード - 開発シリーズ3 openresty

開発シリーズ3 openresty - nginxのスムーズなアップグレードの

上位バージョンへの下位バージョンからnginxのサーバーのアップグレード、サービスから押し出さ場合、実行中のプロセスに影響を与えます。

スムーズなアップグレードプロセスが実行を停止されていない、これらのプロセスは、要求を処理していきます。しかし、新しい要求を受け入れないだろう、古いプロセスは要求を処理した後に停止します。このスムーズなアップグレード・プロセスは、新しいオープンなプロセスが処理されます。

A)スムーズなアップグレード
nginxの実行ディレクトリに
     #のCDは/ usr / local / nginxの/ sbinに/
     #sbinに/ nginxの-v
       nginxのバージョン:nginxの/ビューnginxのバージョン1.13.0#

1)高いバージョンのnginxのダウンロード
のwget HTTPを:/ /nginx.org/download/nginx-1.13.2.tar.gzは

nginxののバイナリバージョンを生成するための命令を実行
#1に./configure
makeはメイクインストールを実行することはできませんの##を
#CDがOBJS
このディレクトリのnginxの高いバージョン
が低いのバックアップバージョンをnginxのの
CDは/ usr / local / nginxの/ sbinに/
CP nginxのnginx.old
必須カバレッジは、nginxのは、低いバージョンはちょうど高のnginxのバージョンにコンパイルされて置き換えます
-rfp#cpは[ノード5 OBJS @ルート]は/ usr / local / SRC / nginxの-1.13.2 / OBJS / nginxのは/ usr / local / nginxの/ sbinに/
?CP:上書き'は/ usr /ローカル/ nginxの/ sbinに/ nginxの' Yが

発効コピーされた新しいファイルをテストします
。#は/ usr / local / nginxの/ sbinに/ nginxの-t
[ルートノード5 OBJS @]#のPSの-ef | nginxのはgrepの
ルート43151 1つの0 19:40 00:00:00 nginxの?マスタープロセスは/ usr / local // nginxの/ sbinに/ nginxの
誰43152 43151 0 19:40 00:00:00 nginxの:?プロセスワーカー
誰も43153 43151 ?0 19:40 00:00:00 nginxの:プロセスワーカー
誰43154 43151 0 19:40 00:00:00 nginxの:プロセスワーカー
誰43 155 43151 0 19:40 00:00:00 nginxの:プロセスワーカー
ルート45585 PTS 0 19時46 43080 / grepの--color夜十二時00分00秒。1 =自動nginxの
[ノード5 @ルートOBJS] /usr/local/nginx/logs/nginx.pid CAT番号
43 151

2)は、信号平滑化アップグレードを実行します
#キル-USR2 `猫の/ usr /ローカル/ nginxの/ログ/ nginx.pid` 構成ファイルを更新

[ルート@ NODE5 OBJS]#殺す -USR2`猫は/ usr / local / nginxの/ログ/ nginx.pid`

nginxのに送られましたUSR2信号の後、ログをnginxのだろう/ nginx.pid.oldbinするファイルの名前を変更し、新しいプロセスを開始し、新しい実行可能ファイルをメインnginxのワーカープロセスに対応し、新しいnginx.pidを作成nginx.pid新しいプライマリプロセスIDを保持

#1 CAT [ノード5 OBJS @ルート]を/usr/local/nginx/logs/nginx.pid
45589


)キル-WINCH古いマスター・プロセスIDを3に
古いマスター・プロセスID信号が古い、WINCHを受け取った後、古いワーカープロセスのプロセスID管理優雅近いです。古いワーカープロセスつつ、取り扱い中のすべての閉じられた、唯一の新しい業務プロセスが接続を要求した後、それは、あります。この時点で、あなたはまだ古いプロセスが停止されていないため、ソケットを聞いて、古いプロセスのサービングに戻すことができます。
加工後、ワークプロセスは自動的にシャットダウンします
-ef#のPS [ノード5 OBJS @ルート] |はgrepのnginxのの
ルート43 151 1 0 19:40 00:00:00 nginxの:?マスタープロセスは/ usr / local // nginxの/ sbinに/ nginxの
誰43152 43151 0午後7時40分午前〇時00分00秒nginxの: ?ワーカープロセス
誰もいない43153 43151 0 19:40?00:00:00 nginxの:ワーカープロセス
誰43154 43151 0 19:40?00:00:00 nginxの:ワーカープロセス
誰43155 43151 0 19:40?00:00:00 nginxの:ワーカープロセス
ルート45589 43151 0 19:46?午前〇時00分00秒nginxの:マスター・プロセスは/ usr / local // nginxの/ sbinに/ nginxのは
誰45590 45589 0 19:46?00:00:00 nginxの:ワーカープロセス
誰45591 45589 0 19:46?00:00:00 nginxの:ワーカープロセス
誰45592 45589 0 19:46?午前〇時00分00秒nginxの:ワーカープロセス
誰45593 45589 0 19時46?00:00:00 nginxの:ワーカープロセスの
ルート45595 43080 0 19:46 PTS / 1 00:00:00のgrep --color =オートnginxの

4)#は、 `猫/ -QUITを殺す USR /ローカル/ nginxの/ログ/ nginx.pid.oldbin` エレガント近い
古いマスター・プロセスに、信号をQUIT古いマスター・プロセスが終了を送信し、ログを削除/ nginx.pidファイル.oldbin、アップグレードが完了しnginxの。

アップグレードが完了し、アップグレードされたバージョンで見納めを

表示するには
、[@ルートをノード5 OBJS]#は/ usr / local / nginxの/ sbinに/ nginxの-v
nginxのバージョン:nginxの/ 1.13.2が

スムーズなアップグレードに成功してきた

2)が途中でアップグレードを停止し、古いnginxのにロールバック

古いアップグレードnginxのに戻したい場合には、ステップでは、(3)、もはや

HUPコマンドを送信するために、古いマスター・プロセスIDにケース(1)の場合、nginxのは、設定ファイルの再起動を再読み込みしませんワーカー・プロセス旧チームのプロセス。
-HUP 43151殺す-古いマスター・プロセスIDは
ワーカープロセスを再起動します

(2)エレガントな新しいマスター・プロセスが閉じ
-QUIT 45589を殺す-新しいプライマリプロセスIDを

おすすめ

転載: www.cnblogs.com/reblue520/p/11428939.html