nginxの実際のケース - スムーズなアップグレードやバージョンのロールバック

nginxの実際のケース - スムーズなアップグレードやバージョンのロールバック

1.スムーズなアップグレード

なぜそれをアップグレード滑らかでなければなりませんか?
私たちは、nginxの更新したいが、それはまた、更新に時間がかかる場合。スムーズなアップグレードは、それが顧客の使用には影響しないことを確認するために、アップグレードをオンラインで行うことができ、かつ、サーバ上のデータのアップグレード版はカバーしています。

STEP1必要nginxのインストールパッケージの2つの異なるバージョン:

这里我的是:nginx-1.14.2.tar.gz  nginx-1.16.1.tar.gz

ここに画像を挿入説明

STEP2のnginxの下位バージョンをインストールします。

tar zxf nginx-1.14.2.tar.gz 
yum install gcc openssl-devel pcre-devel -y
cd nginx-1.14.2
./configure --prefix=/usr/local/nginx
make && make install

STEP3オープンnginxの:

cd /usr/local/nginx/sbin/
./nginx
netstat -antlp | grep nginx		#查看端口信息
/usr/local/nginx/sbin/nginx -v	#查看版本信息
/usr/local/nginx/sbin/nginx -V	#查看编译信息

ここに画像を挿入説明
STEP4は、バックアップスクリプトの前に開始します。

cp nginx nginx.old

ここに画像を挿入説明
別のインストールパッケージにSTEP5コンパイラのインストール:

tar zxf nginx-1.16.1.tar.gz 
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx	#根据老版本的编译选项对新版本进行编译
make									#make结束不要make install

古い起動スクリプトのSTEP6カバー:

cd /usr/local/nginx/sbin/
cp -f /root/nginx-1.16.1/objs/nginx .	#覆盖老版本的启动脚本

ここに画像を挿入説明
STEP7は、nginxの、もはや新しい要求を受け入れ、オリジナルのマスター・プロセスに信号を送りません。

新しいnginxのワーカープログラムオープンなプロセス、および要求を受け始めました:

ps -ef | grep nginx | grep -v grep 	#查看进程
kill -USR2 4667						#4667为nginx老进程的pid
kill -WINCH 4667	

ここに画像を挿入説明
注:この時点では、元のnginxのマスターが撃墜ませんでしたが、必要なときに、要求を受信して​​いない、我々はそれを目を覚ますことができます

STEP8テスト:

/usr/local/nginx/sbin/nginx -v	#升级成功
/usr/local/nginx/sbin/nginx -V

ここに画像を挿入説明

注意:

  • 在编译新版本的时候configure make结束不要make install,这会覆盖原来的nginx
    メイクの性質は、コマンドが対応するディレクトリにコンパイルされたファイルをコピーすることでインストールので、ここでのみコンパイル手順(メイク)は、(make installを)インストール手順を実行しないでください。私達はちょうどnginxのをアップグレードするために、古い設定ファイルの一部が上書きされないようにするために、ここでは省略し、インストールしてください、元の構成はそうファイルがで上書きされていないことを確認して、同じニーズをまま。
  • 不要制作软链接
    この方法では前提があります:あなたはnginxのnginxの起動時に使用することは、その後のnginxを起動するコマンドラインから直接、そうでない場合は、絶対パスでnginxのサービスを開始するために入力する代わりに、「nginxの」道のバイナリファイルへの絶対パスですあなたは、更新プロセスnginxのに信号を送信するときに、nginxのプロセスが新しいバイナリを見つけられないことがあり

2.バージョンのロールバック

STEP1最初nginxのスクリプトを復元します:

cd /usr/local/nginx/sbin
cp -f nginx.old nginx

ここに画像を挿入説明

STEP2は、マスター・プロセスの古いバージョンを復活させる、それが要求を受信して​​みましょう:

ps -ef | grep nginx | grep -v grep
kill -HUP 4667

ここに画像を挿入説明

マスター・プロセスの新しいバージョンは、もはやワーカープロセスをクローズする要求を受信して​​いるので、STEP3:

kill -USR2 7197
kill -WINCH 7197

ここに画像を挿入説明

注:これは、サブプロセスpidの新旧バージョンを削除しなければなりません

STEP4テスト:

ビューnginxのバージョンは、古いバージョンにフォールバックするには:

/usr/local/nginx/sbin/nginx -v
/usr/local/nginx/sbin/nginx -V

ここに画像を挿入説明

公開された175元の記事 ウォン称賛11 ビュー6050

おすすめ

転載: blog.csdn.net/weixin_45775963/article/details/104583440