ブルー グリーン デプロイメント
ブルー グリーン デプロイメントの焦点は次の機能にあります
1. ブルー バージョンと緑色のバージョンも同時に存在します
2。実際の実行環境は青色または緑色であり、スイッチによって制御されるのはいずれか 1 つだけです
#長所と短所の分析: 利点は、速度とロールバックです。そして欠点も明らかです。 2 セットの環境が同時に存在するため、迅速なロールバックが可能です。環境が 2 セット存在するため、複雑さと必要なリソースが増加します。
また、速度は向上しましたが、実装の過程では、スイッチの制御は、どんなにスイッチング速度が速くても、他の技術を組み合わせなければ完全にシームレスなスイッチングを実現することはできません。
Blue-Green デプロイメントのシミュレーション
次に、nginx のアップストリームを使用して、Blue-Green デプロイメント シナリオを単純にシミュレートします。具体的なシナリオは、青色のバージョンが現在アクティブですが、nginx の設定を調整することで、緑色のバージョンが現在アクティブなバージョンに設定されます。
#事前準備
2 つのポート 7001/7002 で 2 つのサービスを事前に起動し、異なる情報を表示します。便利です tornadoを使って画像を作成しました Dockerコンテナ起動時に渡される各種パラメータはサービスの違いを表示するために使用されます。docker run -d -p 7001:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "hello blue/green service: v1 in 7001" docker run -d -p 7002:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "hello blue/green service: v2 in 7002"
実行ログ
[root@kong ~]# docker run -d -p 7001:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "hello blue/green service: v1 in 7001" 70c74dc8e43d5635983f7240deb63a3fc0599d5474454c3bc5197aa5c0017348 [root@kong ~]# docker run -d -p 7002:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "hello blue/green service: v2 in 7002" 6c5c2ea322d4ac17b90feefb96e3194ec8adecedaa4c944419316a2e4bf07117 [root@kong ~]# curl http://192.168.163.117:7001 hello, service :hello blue/green service: v1 in 7001 [root@kong ~]# curl http://192.168.163.117:7002 hello, service :hello blue/green service: v2 in 7002 [root@kong ~]#
nginxの開始
[root@kong ~]# docker run -p 9080:80 --name nginx-blue-green -d nginx d3b7098c44890c15918dc47616b67e5e0eb0da7a443eac266dbf26d55049216a [root@kong ~]# docker ps |grep nginx-blue-green d3b7098c4489 nginx "nginx -g 'daemon ..." 10 seconds ago up 9 seconds 0.0.0.0:9080->80/tcp nginx-blue-green [root@kong ~]#
nginxコードセグメント
以下の nginx コード スニペットを用意し、nginx の /etc/nginx/conf.d/default.conf に追加します。シミュレーション方法は非常に簡単です。トラフィックがゼロであることを示すには、down を使用します (重みをゼロに設定することはできません)。 nginx) 最初は、トラフィックの 100% が青色のバージョンに送信されました。http { upstream nginx_blug_green { server 192.168.163.117:7001 weight=100; server 192.168.163.117:7002 down; } server { listen 80; server_name www.liumiao.cn 192.168.163.117; location / { proxy_pass http://nginx_blug_green; } }
default.conf を変更する方法
vim をコンテナにインストールすることで効果を実現できます。また、ローカルで変更して docker cp 経由で渡すこともできます。 、または直接 sed 変更が可能です。 vim をコンテナにインストールする場合は、次の方法を使用します。[root@kong ~]# docker exec -it nginx-lb sh # apt-get update ...省略 # apt-get install vim ...省略
変更前
# cat default.conf server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the php scripts to apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the php scripts to fastcgi server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param script_filename /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } #
変更後
# cat default.conf upstream nginx_blug_green { server 192.168.163.117:7001 weight=100; server 192.168.163.117:7002 down; } server { listen 80; server_name www.liumiao.cn 192.168.163.117; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { #root /usr/share/nginx/html; #index index.html index.htm; proxy_pass http://nginx_blug_green; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the php scripts to apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the php scripts to fastcgi server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param script_filename /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } #
nginx 設定をリロードします
# nginx -s reload 2018/05/28 04:39:47 [notice] 321#321: signal process started ##結果を確認します
##10 回の呼び出しすべての出力は 7001 の v1 です
[ root@kong ~]# cnt=0; while [ $cnt -lt 10 ]>do
>curl>let cnt>done
こんにちは、サービス : hello blue/green サービス: v1 in 7001
hello、サービス :hello blue/green サービス: v1 in 7001
hello、サービス :hello blue/green サービス: v1 in 7001
hello、サービス : hello blue /green サービス: v1 in 7001
hello、サービス :hello blue/green サービス: v1 in 7001
hello、サービス :hello blue/green サービス: v1 in 7001
hello、サービス :hello blue /greenサービス: 7001 の v1
hello、サービス :hello ブルー/グリーン サービス: 7001 の v1
hello、サービス :hello ブルー/グリーン サービス: 7001 の v1
hello、サービス :hello ブルー/グリーン サービス: 7001 の v1
[root@kong ~]
#Blue-Green デプロイメント: グリーン バージョンに切り替える
default.conf の重みを調整することにより, そして、nginx -s reload を実行します。nginx サービスを停止せずに、動的にグリーン バージョンに切り替えることができます。ターゲットは、7002 ですべてのトラフィックを v2 に出力します
デフォルトの .conf メソッドを変更します
次のように上流のサーバーの重みを調整するだけです。upstream nginx_blug_green {
server 192.168.163.117:7001 down;
server 192.168.163.117:7002 weight=100;
}
# nginx -s reload 2018/05/28 05:01:28 [notice] 330#330: signal process started #
結果を確認します
[root@kong ~]# cnt=0; while [ $cnt -lt 10 ]; docurl ; let cnt ; 完了hello, サービス :hello blue/greenサービス: v2 in 7002
hello, サービス :hello blue/green サービス: v2 in 7002hello, サービス :hello blue/green サービス: v2 in 7002hello, サービス : hello blue/green サービス: v2 で 7002
hello、サービス :hello ブルー/グリーン サービス: v2 で 7002
hello、サービス :hello ブルー/グリーン サービス: v2 で 7002
hello、サービス :hello ブルー/グリーン サービス: v2 で7002
hello、サービス :hello blue/green サービス:7002 の v2
hello、サービス :hello blue/green サービス:7002 の v2
hello、サービス :hello blue/green サービス:7002 の v2
[root@kong ~]
#
以上がBlue-Green デプロイメントに nginx シミュレーションを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

NginxとApacheには独自の利点と短所があり、さまざまなシナリオに適しています。 1.Nginxは、高い並行性と低リソース消費シナリオに適しています。 2。Apacheは、複雑な構成とリッチモジュールが必要なシナリオに適しています。コア機能、パフォーマンスの違い、ベストプラクティスを比較することで、ニーズに最適なサーバーソフトウェアを選択するのに役立ちます。

質問:nginxを開始する方法は?回答:nginxスタートアップnginx検証nginxはnginxを開始しました他のスタートアップオプションを自動的に開始

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

NGINXサービスをシャットダウンするには、次の手順に従ってください。インストールタイプを決定します:Red Hat/Centos(SystemCtl Status Nginx)またはDebian/Ubuntu(Service Nginx Status)サービスを停止します:Red Hat/Centos(SystemCtl Stop Nginx)またはDebian/Ubuntu(Service Nginx Stop)無効自動起動(オプション):Debuntos/Centos/Centos/Centos/Centos/Centos (syst

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

サーバーには、要求されたリソースにアクセスする許可がなく、NGINX 403エラーが発生します。ソリューションには以下が含まれます。ファイル許可を確認します。 .htaccess構成を確認してください。 nginx構成を確認してください。 SELINUXアクセス許可を構成します。ファイアウォールルールを確認してください。ブラウザの問題、サーバーの障害、その他の可能なエラーなど、他の原因をトラブルシューティングします。

Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

Linuxでは、次のコマンドを使用して、nginxが起動されるかどうかを確認します。SystemCTLステータスNGINXコマンド出力に基づいて、「アクティブ:アクティブ(実行)」が表示された場合、NGINXが開始されます。 「アクティブ:非アクティブ(dead)」が表示されると、nginxが停止します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版
便利なJavaScript開発ツール
