Dieser Artikel stellt die Blue-Green-Bereitstellung vor und zeigt, wie man mit nginx die Blue-Green-Bereitstellung auf einfachste Weise simuliert. Blue-Green-Bereitstellung Die wichtigsten Punkte der Blue-Green-Bereitstellung sind wie folgt
Simulation einer Blue-Green-Bereitstellung Als Nächstes verwenden wir den Upstream von nginx, um das Blue-Green-Bereitstellungsszenario einfach zu simulieren. Das konkrete Szenario ist wie folgt: Die blaue Version ist derzeit aktiv. Durch Anpassen der Nginx-Einstellungen wird die grüne Version als aktuell aktive Version festgelegt. Vorbereitung Zwei Dienste werden auf den Ports 7001/7002 gestartet, um unterschiedliche Informationen anzuzeigen. Zur Vereinfachung der Demonstration wird mit Tornado ein Spiegel erstellt. Beim Starten des Docker-Containers werden unterschiedliche Parameter übergeben, um die Unterschiede in den Diensten anzuzeigen. docker run -d -p 7001:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py „Hallo blauer/grüner Dienst: v1 in 7001“ docker run -d -p 7002:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py „Hallo blauer/grüner Dienst: v2 in 7002“ Ausführungsprotokoll [root@kong ~]# docker run -d -p 7001:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "Hallo blauer/grüner Dienst: v1 in 7001" 70c74dc8e43d5635983f7240deb63a3fc0599d5474454c3bc5197aa5c0017348 [root@kong ~]# docker run -d -p 7002:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "Hallo blauer/grüner Dienst: v2 in 7002" 6c5c2ea322d4ac17b90feefb96e3194ec8adecedaa4c944419316a2e4bf07117 [root@kong ~]# curl http://192.168.163.117:7001 Hallo, Service: Hallo blau/grün Service: v1 in 7001 [root@kong ~]# curl http://192.168.163.117:7002 Hallo, Service: Hallo blau/grün Service: v2 in 7002 [root@kong ~]# Starten Sie 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 ...“ vor 10 Sekunden. 9 Sekunden aktiv. 0.0.0.0:9080->80/tcp nginx-blue-green [root@kong ~]# Nginx-Codeausschnitt Bereiten Sie den folgenden Nginx-Codeausschnitt vor und fügen Sie ihn zu /etc/nginx/conf.d/default.conf von Nginx hinzu. Die Simulationsmethode ist sehr einfach. Down wird verwendet, um anzuzeigen, dass der Datenverkehr Null ist (Gewicht kann in Nginx nicht auf Null gesetzt werden). Zu Beginn werden 100 % des Datenverkehrs an die blaue Version gesendet. http { Upstream nginx_blug_green { Server 192.168.163.117:7001 Gewicht=100; Server 192.168.163.117:7002 ausgefallen; } Server { hören Sie 80; Servername www.liumiao.cn 192.168.163.117; Standort / { Proxy-Passwort http://nginx_blug_green; } } So ändern Sie default.conf Dies kann erreicht werden, indem vim im Container installiert, lokal geändert und dann über Docker cp übergeben oder direkt mit sed geändert wird. Wenn Sie vim im Container installieren, verwenden Sie die folgende Methode [root@kong ~]# docker exec -it nginx-lb sh # apt-get update … #apt-get install vim weglassen ...ausgelassen Vor der Änderung # Katze default.conf Server { hören Sie 80; Servername localhost; #Zeichensatz koi8-r; #access_log /var/log/nginx/host.access.log main; Standort / { root /usr/share/nginx/html; Index Index.html Index.htm; } #Fehlerseite 404 /404.html; # Server-Fehlerseiten auf die statische Seite /50x.html umleiten # Fehlerseite 500 502 503 504 /50x.html; Standort = /50x.html { root /usr/share/nginx/html; } # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht # #Standort ~ \.php$ { # Proxy-Passwort http://127.0.0.1; #} # Übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht. # #Standort ~ \.php$ { #Wurzel-HTML; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #fastcgi_params einschließen; #} # Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokumentenstammverzeichnis # stimmt mit nginx überein # #Standort ~ /\.ht { # alles ablehnen; #} } # Nach # Katze default.conf Upstream nginx_blug_green { Server 192.168.163.117:7001 Gewicht=100; Server 192.168.163.117:7002 ausgefallen; } Server { hören Sie 80; Servername www.liumiao.cn 192.168.163.117; #Zeichensatz koi8-r; #access_log /var/log/nginx/host.access.log main; Standort / { #root /usr/share/nginx/html; #index index.html index.htm; Proxy-Passwort http://nginx_blug_green; } #Fehlerseite 404 /404.html; # Server-Fehlerseiten auf die statische Seite /50x.html umleiten # Fehlerseite 500 502 503 504 /50x.html; Standort = /50x.html { root /usr/share/nginx/html; } # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht # #Standort ~ \.php$ { # Proxy-Passwort http://127.0.0.1; #} # Übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht. # #Standort ~ \.php$ { #Wurzel-HTML; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #fastcgi_params einschließen; #} # Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokumentenstammverzeichnis # stimmt mit nginx überein # #Standort ~ /\.ht { # alles ablehnen; #} } # Nginx-Einstellungen neu laden # nginx -s neu laden 2018/05/28 04:39:47 [Hinweis] 321#321: Signalprozess gestartet # Bestätigen Sie das Ergebnis Alle 10 Anrufe Ausgabe v1 in 7001
Blue-Green-Deployment: Umstellung auf die grüne Variante Indem Sie das Gewicht von default.conf anpassen und dann nginx -s reload ausführen, können Sie dynamisch zur grünen Version wechseln, ohne den nginx-Dienst zu stoppen. Das Ziel besteht darin, den gesamten Datenverkehr in 7002 an v2 auszugeben So ändern Sie default.conf Du musst lediglich das Gewicht des Servers im Upstream wie folgt anpassen: Upstream nginx_blug_green { Server 192.168.163.117:7001 ausgefallen; Server 192.168.163.117:7002 Gewicht=100; } Nginx-Einstellungen neu laden # nginx -s neu laden 2018/05/28 05:01:28 [Hinweis] 330#330: Signalprozess gestartet # Bestätigen Sie das Ergebnis
Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
>>: JavaScript implementiert einfache Rechnerfunktion
Heute werde ich einen Quellcode mit Ihnen teilen,...
Inhaltsverzeichnis Was ist ein Headless-Browser? ...
Die Verwendung eines SSH-Terminals (z. B. Putty, ...
mycli MyCLI ist eine Befehlszeilenschnittstelle f...
Inhaltsverzeichnis Einführung Untergeordneter Pro...
Inhaltsverzeichnis 1. Lokale Speichertechnologie ...
1. Dies ist etwas kompliziert zu verstehen. Ich h...
Ich habe gestern gerade etwas HTML gelernt und kon...
Suchen Sie immer noch nach einer Möglichkeit, Hyp...
Pseudo-Arrays und Arrays In JavaScript sind mit A...
Hintergrund Indizes sind ein zweischneidiges Schw...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Einleitung 2. Verwendung 1....
In diesem Artikelbeispiel wird der spezifische Co...
Finden Sie das Problem Beim Abrufen der wichtigst...