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
Inhaltsverzeichnis 1. Einführung in FastDFS 1. Ei...
Ich frage mich, ob Sie wie ich ein Programmierer ...
Inhaltsverzeichnis 1. Problembeschreibung 2. Prob...
Inhaltsverzeichnis 1. Benutzerdefinierte Anweisun...
Warum prettier verwenden? In großen Unternehmen k...
Als Erstes müssen Sie einen guten Browser auswähl...
Beim Ändern des Standarddatums-/Uhrzeitwerts über...
1. Was ist ein zweispaltiges Layout? Es gibt zwei...
Was ist Lastenausgleich? Wenn ein Domänenname auf...
1. Datensicherung 1. Verwenden Sie den Befehl mys...
Docker Toolbox ist eine Lösung zur Installation v...
einführen Durch das Einrichten einer Lese-/Schrei...
MySQL-Gruppensortierung, um die obersten N zu fin...
<META http-equiv="Seite eingeben" CON...
Inhaltsverzeichnis Vorwort Mehrere gängige Bitope...