Detaillierte Erläuterung zur Verwendung von Nginx + Consul + Upsync zum Erreichen eines dynamischen Lastausgleichs

Detaillierte Erläuterung zur Verwendung von Nginx + Consul + Upsync zum Erreichen eines dynamischen Lastausgleichs

Voraussetzungen

DNS-Domänennamenauflösungsprozess

  • Geben Sie den Domänennamen in den Browser ein und besuchen Sie
  • Überprüfen Sie den Browser-Cache auf die entsprechende IP und den entsprechenden Port. Wenn ein direkter Zugriff auf die entsprechende IP und den entsprechenden Port besteht
  • Wenn im Browser-Cache keine entsprechende Datei vorhanden ist, prüfen Sie in der lokalen Hostdatei, ob eine vorhanden ist.
  • Wenn keine lokale Hostdatei vorhanden ist, suchen Sie auf dem DSN-Server.

Externe Netzwerkzuordnung

Wie der Name schon sagt, wird die lokale IP-Adresse einer öffentlichen IP-Adresse zugeordnet, auf die alle Hosts (mit dem Internet verbundene Computer) zugreifen können.

  • Frage: Warum muss ich eine externe Netzwerkzuordnung verwenden?

Wenn Sie beispielsweise für eine WeChat-Zahlung einen Rückruf an eine Schnittstelle eines Drittanbieters durchführen, muss die Schnittstelle, über die WeChat Sie zurückruft, eine öffentliche IP-Adresse sein. Andernfalls kann es Sie überhaupt nicht zurückrufen und Sie können keinen lokalen Test durchführen. Zu diesem Zeitpunkt benötigen Sie eine externe Netzwerkzuordnung, um Ihre IP-Adresse einem öffentlichen Netzwerk (einem für den Host zugänglichen Netzwerk) zuzuordnen.

  • Frage: Wie erreicht man eine externe Netzwerkzuordnung?

Verwenden Sie Tools von Drittanbietern, um die externe Netzwerkzuordnung abzuschließen, z. B. NatApp oder Ngrok. Genauere Anweisungen finden Sie auf der offiziellen Website.
Offizielle ngrok-Website.
Offizielle Natapp-Website (empfohlen)

Nginx-Kernwissen

Was ist nginx

nginx ist ein leichtgewichtiger Webserver/Reverse-Proxy-Server, der klein ist und eine sehr hohe Parallelität unterstützt.

Anwendungsszenario

HTTP-Server: Wird als statischer Server und Bildserver verwendet. Virtuelle Hostkonfiguration: Teilt einen Server für die Bereitstellung mehrerer Websites auf. (Sie können die Konfiguration des virtuellen Hosts abschließen, indem Sie verschiedene Domänennamenzuordnungen oder verschiedene Ports konfigurieren.)
Reverse-Proxy: Verwenden Sie einen Reverse-Proxy, um die echte IP-Adresse zu verbergen <br /> Anwendungsszenarien für einen Reverse-Proxy:
Sie haben drei Server, die unterschiedliche Dienste bereitstellen. Derzeit können Sie nginx verwenden, um die Domänennamenzuordnung zu konfigurieren, um den Zugriff auf die drei verschiedenen Server oder über Ports zu vervollständigen. Die echten IP-Adressen der drei Server können verborgen werden. Nginx leitet die Pakete intern an verschiedene Server weiter, und das Paketerfassungstool kann nur die IP-Adresse des Nginx-Servers (ohne den Basispunkt) abrufen.
Lastenausgleich <br /> Die Sicherheitskonfiguration verwendet Nginx, um ein API-Schnittstellen-Gateway zu erstellen, das domänenübergreifende Probleme der Website löst und die statischen und dynamischen Ressourcen der Website trennt, um DDOS (Verkehrsangriffe) zu verhindern.

Glossar

Lastausgleich auf Schicht 4

Läuft auf der Transportebene, oft unter Verwendung des TCP-Protokolls

Lastausgleich auf Schicht 7

Läuft auf der Anwendungsebene, oft unter Verwendung des HTTP-Protokolls

Lastenausgleich

Funktion: Es kann den Druck eines einzelnen Servers reduzieren, Failover (Wiederholungsmechanismus). Wenn ein Server ausfällt, wird der nächste Server direkt abgefragt, eine Integritätsprüfung durchgeführt und Upstream verwendet, um den Upstream-Server in nginx zu konfigurieren.

Ausfallsicherung

Wenn Sie auf einen der Server zugreifen und feststellen, dass der Dienst ausgefallen ist oder eine Verzögerung auftritt, können Sie ein Failover konfigurieren, um direkt zu einem anderen Server zu wechseln.

### Zeit zum Verbinden mit dem Upstream-Server proxy_connect_timeout 1s;
		### Timeout für das Senden der Anforderung proxy_send_timeout 1s;
		### Akzeptieren Sie das entsprechende Timeout proxy_read_timeout 1s;

Dynamischer Lastenausgleich

Die Konfiguration im Upstream ist nicht mehr statisch, sondern wird dynamisch aus dem Registrierungscenter gezogen, um einen dynamischen Lastausgleich zu erreichen.

Nginx + Consul + Upsync vervollständigen den dynamischen Lastenausgleich

1. Installieren Sie die Basisumgebung von centos7

# Grundlegende Befehle # Installieren Sie den Befehl netstat yum install netstat
 # Alle TCP-Port-Nutzung anzeigen netstat -ntlp
 # Den aktuellen Serviceprozess anzeigen ps -ef Optional: [ | grep nginx]
 # Erzwingen Sie das Beenden des Programms entsprechend dem Port kill -9 pid-Prozessnummer # Konfigurieren Sie die Yum-Quelle yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Yum-Aktualisierung
yum install -y yum-utils Gerätemapper-Persistent-Data lvm2
# Installieren Sie die Basisumgebung yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
yum installiere wget
yum installieren entpacken

2. Installieren Sie Consul (Dienstregistrierung und -erkennung)

# Laden Sie das Installationspaket herunter, das -c in wget -c bedeutet Unterbrechungspunktfortsetzung wget -c https://releases.hashicorp.com/consul/1.8.5/consul_1.8.5_linux_amd64.zip
# Entpacken Sie das komprimierte Paket upzip unzip consul_1.8.5_linux_amd64.zip
# Führen Sie den Befehl ./consul aus. Wenn die Zeile Usage: consul [--version] [--help] <command> [<args>] und die folgenden Parameter erscheinen, bedeutet dies, dass mit diesem Consul kein Problem vorliegt./consul
# Schalten Sie die Firewall aus systemctl stop firewalld
# Starten Sie Consul, geben Sie die IP-Adresse Ihres Computers ein. Wenn es sich um eine virtuelle Maschine handelt, geben Sie die IP-Adresse der virtuellen Maschine ein. CentOS kann die IP-Adresse über IP Addr anzeigen und über das Fenster IP-Adresse mit ipconfig anzeigen.
./consul agent -dev -ui -node=consul-dev -client=192.168.254.134
# Natürlich können Sie auch die Methode verwenden, die im Hintergrund ausgeführt wird, sodass das Ausgabeprotokoll auf derselben Ebene in die Datei nohup.out zurückkehrt nohup ./consul agent -dev -ui -node=consul-dev -client=192.168.254.134 &
# Zugriff auf die Webseite des Konsuls 192.168.254.134:8500

# Überprüfen und schließen Sie den Hintergrundprozess von Consul. Die 19854, die ich hier geschrieben habe, ist die Prozess-PID, die von jobs -l abgefragt wird
jobs -l
töten -9 19854

3. Installieren Sie nginx und fügen Sie das Upsync-Modul hinzu

# Laden Sie das Upsync-Modul herunter und entpacken Sie es wget -c https://github.com/weibocom/nginx-upsync-module/archive/master.zip
entpacken Sie nginx-upsync-module-master.zip
# Laden Sie nginx herunter
wget -c http://nginx.org/download/nginx-1.9.9.tar.gz
# In das aktuelle Verzeichnis entpacken tar -zxvf nginx-1.9.9.tar.gz
# Konfigurieren Sie einen Nginx-Benutzer und eine Benutzergruppe. -s /sbin/nologin nginx bedeutet, dass sich der Benutzer nicht beim Host anmelden kann. groupadd nginx
useradd -g nginx -s /sbin/nologin nginx
# Diese beiden Ordner werden beim Kompilieren von nginx angegeben mkdir -p /var/tmp/nginx/client/
mkdir -p /usr/local/nginx
# Geben Sie das Verzeichnis des entpackten Ordners von nginx cd nginx-1.9.9 ein 
# Nginx kompilieren, --prefix steht für das Verzeichnis, in dem Nginx installiert ist. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::
machen && machen installieren
## Geben Sie das Verzeichnis ein, in dem nginx gerade installiert wurde, also das Verzeichnis /usr/local/nginx, und geben Sie das conf-Verzeichnis ein, um den Dateiinhalt des conf-Verzeichnisses upstream myserver { zu bearbeiten.
 Server 127.0.0.1:11111;# Dies ist behoben, ignorieren Sie es# Springbootserver: Schlüsselwert, Upsync_Timeout-Timeout 3 Sekunden, Upsync_Interval-Intervall, Upsync_Type-Typ Consul, Strong_Dependency erweiterte Abhängigkeit Upsync 192.168.254.134:8500/v1/kv/Upstreams/Springbootserver Upsync_Timeout = 3000 ms Upsync_Interval = 500 ms Upsync_Type = Consul Strong_Dependency = Aus;
 #Legen Sie die abgerufene Konfigurationsdatei in das folgende konfigurierte Verzeichnis upsync_dump_path /usr/local/nginx-1.9.9/conf/upsync_dump.conf;

 }
 #Geben Sie den Speicherort im Server als den soeben erstellten Upstream-Server an
 Standort / {
 Proxy-Passwort http://meinServer;
 Index Index.html Index.htm;
 }
# Wechseln Sie in das sbin-Verzeichnis und starten Sie nginx
./nginx

4. Führen Sie Tests durch

  • Die Maschine startet zwei Dienste, 8080 und 8081, mit der IP-Adresse 192.168.0.116
  • Verwenden Sie den Linux-Befehl, um 2 Schlüsselwerte für Consul anzugeben. 192.168.254.134 ist die IP-Adresse von Consul.
# Verwenden Sie die Curl-Anfrage, es muss eine Put-Anfrage sein curl -X PUT http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8080

curl -X PUT http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8081

#Oder verwenden Sie Postman, um die von Consul bereitgestellte API aufzurufen und Schlüssel und Wert hinzuzufügen
http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8081

# Sie können die grafische Oberfläche sogar verwenden, um Schlüsselwerte manuell hinzuzufügen. Beachten Sie beim manuellen Hinzufügen, dass Sie beim Erstellen eines Ordners am Ende einen Schrägstrich hinzufügen müssen: /

5. Fügen Sie den dem Schlüssel entsprechenden Wert auf der grafischen Seite des Konsuls hinzu, um den Lastausgleichsalgorithmus anzugeben

{"Gewicht":1, "max_fails":2, "fail_timeout":10, "down":0} 

Bildbeschreibung hier einfügen

Da die Downloadgeschwindigkeit von wget manchmal langsam ist, wird die Datei hier hochgeladen

Dateilinks

Dies ist das Ende dieses Artikels über Nginx + Consul + Upsync zum Erreichen eines dynamischen Lastausgleichs. Weitere verwandte Inhalte zum dynamischen Lastausgleich mit Nginx + Consul + Upsync finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Das Prinzip und die Konfiguration des Nginx-Lastausgleichs sowie der dynamischen und statischen Trennung
  • Konfigurationshandbuch für den Lastenausgleich auf Ebene 4 von Nginx
  • So konfigurieren Sie den Nginx-Lastausgleich
  • Analyse des Prinzips von Nginx + Tomcat zur Erreichung eines Lastausgleichs sowie einer dynamischen und statischen Trennung
  • Was ist Nginx-Lastausgleich und wie wird er konfiguriert?
  • Implementierungsmethode des Nginx+Tomcat-Lastausgleichsclusters
  • Docker Nginx-Container und Tomcat-Container zur Realisierung von Lastausgleich und dynamischen und statischen Trennungsvorgängen
  • Nginx-Konfiguration zum Erreichen eines Lastenausgleichs auf mehreren Servern

<<:  JavaScript zum Implementieren der Auswahl oder Stornierung von Kontrollkästchen

>>:  MySQL-Unterabfragen und gruppierte Abfragen

Artikel empfehlen

MySQL 5.7.21 Installations- und Konfigurations-Tutorial unter Windows 10

Dieser Artikel zeichnet die Installations- und Ko...

React-Konfiguration px-Konvertierung rem-Methode

Installieren Sie zugehörige Abhängigkeiten npm ic...

Lassen Sie uns ausführlich über den Symboldatentyp in ES6 sprechen

Inhaltsverzeichnis Symboldatentyp Der Grund, waru...

MySQL Serie 4 SQL-Syntax

Inhaltsverzeichnis Tutorial-Reihe 1. Einführung u...