Konfigurationscodebeispiel für Nginx-Forward- und Reverse-Proxy sowie Lastausgleichsfunktionen

Konfigurationscodebeispiel für Nginx-Forward- und Reverse-Proxy sowie Lastausgleichsfunktionen

In diesem Artikel werden hauptsächlich die Konfigurationscodebeispiele für die Vorwärts- und Rückwärtsproxy- und Lastausgleichsfunktionen von Nginx vorgestellt. Der Beispielcode wird in diesem Artikel ausführlich vorgestellt, was einen gewissen Referenzwert für das Studium oder die Arbeit aller darstellt. Freunde, die ihn brauchen, können ihn zu Rate ziehen.

Systemumgebung:

VirtualBox-Manager

Centos6.4

nginx1.10.0

Maschinenname entsprechend der IP:

IP-Computername Rollenname

10.0.0.139 [Elch] Client

10.0.0.136 [lvs-master] nginx-Server

10.0.0.137 [kvm] Webserver 1

10.0.0.111 [lvs-backup] Webserver 2

1. Proxy weiterleiten

1.1 Umgebung Einführung

1.2 Konfiguration Einführung

Nginx-Server: (Intranet-Adresse: 10.0.0.136, Externe Netzwerkadresse: 172.16.27.64)

Verwenden Sie VirtualBox Manager, um duale Netzwerkkarten zu virtualisieren.

[root@lvs-master conf.d]# ifconfig 
eth0 Link encap:Ethernet HWaddr 08:00:27:30:56:99 
     Inet-Adresse: 10.0.0.136 Bcast: 10.255.255.255 Maske: 255.0.0.0 
     inet6 Adresse: fe80::a00:27ff:fe30:5699/64 Bereich: Link 
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1 
     RX-Pakete: 891978 Fehler: 0 verloren: 0 Überläufe: 0 Frame: 0 
     TX-Pakete: 9509 Fehler: 0 verloren: 0 Überläufe: 0 Träger: 0 
     Kollisionen:0 txqueuelen:1000 
     RX-Bytes: 81841095 (78,0 MiB) TX-Bytes: 13339058 (12,7 MiB) 
 
eth1 Link encap:Ethernet HWaddr 08:00:27:55:4C:72 
     Inet-Adresse: 172.16.27.64 Bcast: 172.16.27.255 Maske: 255.255.255.0 
     inet6 Adresse: fe80::a00:27ff:fe55:4c72/64 Bereich: Link 
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1 
     RX-Pakete: 913671 Fehler: 0 verloren: 0 Überläufe: 0 Frame: 0 
     TX-Pakete: 22712 Fehler: 0 verloren: 0 Überläufe: 0 Träger: 0 
     Kollisionen:0 txqueuelen:1000 
     RX-Bytes: 109369858 (104,3 MiB) TX-Bytes: 1903855 (1,8 MiB) 
 
lo Link encap: Lokaler Loopback 
     inet-Adresse:127.0.0.1 Maske:255.0.0.0 
     inet6 Adresse: ::1/128 Bereich:Host 
     UP LOOPBACK RUNNING MTU:16436 Metrik:1 
     RX-Pakete: 36222 Fehler: 0 verloren: 0 Überläufe: 0 Frame: 0 
     TX-Pakete: 36222 Fehler: 0 verloren: 0 Überläufe: 0 Träger: 0 
     Kollisionen:0 txqueuelen:0 
     RX-Bytes: 3899937 (3,7 MiB) TX-Bytes: 3899937 (3,7 MiB)
[root@lvs-master conf.d]# cat zxproxy.conf 
Server { 
  listen 80; #Abhörport Servername 10.0.0.136; #Serverinhaltsadresse, die Netzwerkkommunikation mit dem Client-Resolver 172.16.5.1 benötigt; #DNS, dies ist DNS, Zugriff auf externen Netzwerkstandort / { 
      proxy_pass http://$http_host$request_uri; #$http_host und $request_uri sind Nginx-Systemvariablen, sie müssen nicht ersetzt werden, lassen Sie sie so wie sie sind}

Nginx-Client:

Es gibt nur eine Intranet-Netzwerkkarte, und der Internetzugang erfolgt über den Nginx-Server. Tatsächlich basieren die gebräuchlichen Namen wie „Kletterwand“ und „Zombie-Huhn“ auf diesem Prinzip.

[root@kvm ~]# ifconfig 
eth0 Link encap:Ethernet HWaddr 08:00:27:72:8C:3B 
     Inet-Adresse: 10.0.0.137 Bcast: 10.255.255.255 Maske: 255.0.0.0 
     inet6 Adresse: fe80::a00:27ff:fe72:8c3b/64 Bereich: Link 
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1 
     RX-Pakete:1462448 Fehler:0 verloren:0 Überläufe:0 Frame:0 
     TX-Pakete: 21130 Fehler: 0 verloren: 0 Überläufe: 0 Träger: 0 
     Kollisionen:0 txqueuelen:1000 
     RX-Bytes: 145119904 (138,3 MiB) TX-Bytes: 2814635 (2,6 MiB) 
 
lo Link encap: Lokaler Loopback 
     inet-Adresse:127.0.0.1 Maske:255.0.0.0 
     inet6 Adresse: ::1/128 Bereich:Host 
     UP LOOPBACK RUNNING MTU:16436 Metrik:1 
     RX-Pakete: 60800 Fehler: 0 verloren: 0 Überläufe: 0 Frame: 0 
     TX-Pakete: 60800 Fehler: 0 verloren: 0 Überläufe: 0 Träger: 0 
     Kollisionen:0 txqueuelen:0 
     RX-Bytes: 4831102 (4,6 MiB) TX-Bytes: 4831102 (4,6 MiB) 
 
[root@kvm ~]# wget www.baidu.com 
--2016-06-08 13:02:08-- http://www.baidu.com/ 
Host www.baidu.com wird aufgelöst ... Fehlgeschlagen: Die Auflösung des Domänennamens ist vorübergehend fehlgeschlagen. #Kein Zugriff auf Baidu wget möglich: Die Hostadresse „www.baidu.com“ kann nicht aufgelöst werden. 
 
[root@kvm ~]# export http_proxy=http://10.0.0.136:80 #Umgebungsvariablen festlegen, IP und Port des Proxyservers angeben [root@kvm ~]# wget www.baidu.com #Kann erfolgreich auf Baidu zugreifen--2016-06-08 13:08:15-- http://www.baidu.com/ 
Verbindung zu 10.0.0.136:80 wird hergestellt... Verbunden. 
Proxy-Anfrage wurde gesendet, warte auf Antwort... 200 OK 
Länge: Nicht angegeben [text/html] 
Speichern unter: "index.html.1" 
 
  [ <=> ] 99,762 --.-K/s in 0,07s 
 
08.06.2016 13:08:16 (1,36 MB/s) – „index.html.1“ gespeichert [99762]

2. Reverse-Proxy

Einführungsartikel mit Forwardproxy

2.1 Umgebung Einführung

1. Werfen wir einen Blick auf die Testseite:

[root@kvm ~]# yum installiere httpd 
[root@kvm ~]# echo "<html>10.0.0.137</html>" > /var/www/html/index.html 
[root@lvs-backup ~]# yum installiere httpd 
[root@lvs-backup~]# echo "<html>10.0.0.111</html>" > /var/www/html/index.html

2. Schauen Sie sich die Wirkung an:

[root@lvs-backup html]# curl 10.0.0.111 
<html> 
10.0.0.111 
</html> 
[root@lvs-backup html]# curl 10.0.0.137 
<html> 
10.0.0.137 
</html>  
##Alles erfolgreich, fahren wir mit dem nächsten Schritt fort.

2.2 Konfiguration Einführung

[root@lvs-master conf.d]# ls #Konfigurationsdatei zxproxy.conf im nginx-Verzeichnis 
[root@lvs-master conf.d]# cp zxproxy.conf fxproxy.conf #Erstelle eine Kopie. Früher war es ein Forward-Proxy, jetzt ist es ein Reverse-Proxy [root@lvs-master conf.d]# mv zxproxy.conf zxproxy.conf.bak
[root@lvs-master conf.d]# cat fxproxy.conf  
Server { 
  hören Sie 80; 
  Servername 10.0.0.136; #Laut Umgebungseinführung die IP des Nginx-Servers 
 
  Standort / { 
      proxy_pass http://10.0.0.137; #Die Server-IP, die geproxied wird 
        } 
 
#proxy_pass: Proxy-Pass-URL 
#Standardwert: NEIN 
#Felder verwenden: Standort, wenn Feld in Standort #Dieser Parameter legt die Adresse des Proxy-Servers und die zugeordnete URL fest. Die Adresse kann ein Hostname, Domänenname, IP plus Portmodus sein, wie zum Beispiel: 
#Proxy_Passwort http://192.168.1.6:8099/linuxtone/; 
 
[root@lvs-master conf.d]# service nginx restart #Neustart und Konfiguration laden

Schauen Sie sich die Ergebnisse an:

#Melden Sie sich zunächst in der experimentellen Umgebung beim Client-Computer an. Die IP lautet wie folgt: 
[root@elk ~]# ifconfig              
eth0 Link encap:Ethernet HWaddr 08:00:27:3D:40:40 
     Inet-Adresse: 10.0.0.139 Bcast: 10.255.255.255 Maske: 255.0.0.0 
     inet6 Adresse: fe80::a00:27ff:fe3d:4040/64 Bereich: Link 
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1 
     RX-Pakete: 2618345 Fehler: 0 verloren: 0 Überläufe: 0 Frame: 0 
     TX-Pakete: 247926 Fehler: 0 verloren: 0 Überläufe: 0 Träger: 0 
     Kollisionen:0 txqueuelen:1000 
     RX-Bytes: 336182790 (320,6 MiB) TX-Bytes: 35145157 (33,5 MiB) 
 
lo Link encap: Lokaler Loopback 
     inet-Adresse:127.0.0.1 Maske:255.0.0.0 
     inet6 Adresse: ::1/128 Bereich:Host 
     UP LOOPBACK RUNNING MTU:16436 Metrik:1 
     RX-Pakete: 177352 Fehler: 0 verloren: 0 Überläufe: 0 Frame: 0 
     TX-Pakete: 177352 Fehler: 0 verloren: 0 Überläufe: 0 Träger: 0 
     Kollisionen:0 txqueuelen:0 
     RX-Bytes: 26547640 (25,3 MiB) TX-Bytes: 26547640 (25,3 MiB) 
 
[root@elk ~]# curl 10.0.0.136 #Zugriff auf den Reverse-Proxy-Server <html> 
10.0.0.137          
</html> 
#Wir können sehen, dass auf den Proxyserver zugegriffen wird und das Ergebnis an Webserver1 weitergeleitet wird. 
 
#Als nächstes schauen wir uns die Protokolle von nginx-server und web-server1 an: 
nginx-Server: 
[root@lvs-master ~]# tail /var/log/nginx/access.log 
10.0.0.139- - [08/Jun/2016:15:35:43 +0800] "GET / HTTP/1.1" 200 26 "-" "curl/7.19.7  
(x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" "-" 
 
Webserver: 
[root@kvm httpd]# tail /var/log/httpd/access_log 
10.0.0.136 - - [08/Jun/2016:15:21:12 +0800] "GET / HTTP/1.0" 200 26 "-" "curl/7.19.7  
(x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" 
 
##Wir sehen das Nginx-Protokoll auf dem Nginx-Server, das zeigt, dass der aufgerufene Benutzer 10.0.0.139 ist, was der Client in unserer Umgebung ist. 
#Die auf dem Webserver angezeigte IP ist 10.0.0.136, das ist der Nginx-Server. 
#Einfach ausgedrückt bedeutet Reverse-Proxy, dass der Nginx-Server der echte Server für Kunden ist. Wenn Benutzer auf den Nginx-Server zugreifen, wird die Anforderung tatsächlich an #Webserver1 weitergeleitet, und dann sendet Webserver1 das Ergebnis der Anforderung an den Nginx-Server, und dann leitet der Ngin-Small-Server das Ergebnis der Anforderung an den Benutzer weiter. 
 
#Auf dem Webserver sehen Sie nur die Proxy-IPs. Können Sie auch die echten Benutzer-IPs sehen? 
 
[root@lvs-master conf.d]# cat fxproxy.conf         
Server { 
  hören Sie 80; 
  Servername 10.0.0.136; #Laut Umgebungseinführung, Nginx-Server-IP 
 
  Standort / { 
      proxy_pass http://10.0.0.137; #Die Server-IP, die geproxied wird 
      proxy_set_header X-Real-IP $remote_addr; #Diese Zeile wird hinzugefügt}
[root@lvs-master conf.d]# service nginx restart 
[root@kvm ~]# tail /var/log/httpd/access_log 
10.0.0.136 - - [08/Jun/2016:16:10:53 +0800] "GET / HTTP/1.0" 200 26 "-" "curl/7.19.7 
(x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" 
 
#Nach der Änderung wird die IP-Adresse des Proxyservers weiterhin angezeigt. Ändern wir die Konfiguration auf dem Webserver [root@kvm ~]# vim /etc/httpd/conf/httpd.conf 
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" kombiniert 
LogFormat "%h %l %u %t \"%r\" %>s %b" allgemein 
LogFormat "%{Referer}i -> %U" Referrer 
LogFormat "%{User-agent}i"-Agent 
 
#Geändert in: (%h bezieht sich auf den Host, auf den zugegriffen wird, jetzt wird es in die tatsächliche IP des Hosts geändert, auf den zugegriffen wird) 
LogFormat "%{X-Real-IP}i</span> %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" kombiniert 
LogFormat "%h %l %u %t \"%r\" %>s %b" allgemein 
LogFormat "%{Referer}i -> %U" Referrer 
LogFormat "%{User-agent}i"-Agent
[root@kvm ~]# service httpd restart 
httpd wird gestoppt: [ OK ] 
httpd wird gestartet: [ OK ] 
 
[root@kvm ~]# tail /var/log/httpd/access_log 
10.0.0.136 - - [08/Jun/2016:16:10:53 +0800] "GET / HTTP/1.0" 200 26 "-" "curl/7.19.7 
(x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" 
<span style="color:#FF0000;">10.0.0.139</span> - - [08/Jun/2016:16:16:01 +0800] "GET / HTTP/1.0" 200 26 "-" "curl/7.19.7 
(x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" 
#Es ist die echte Zugangsadresse geworden

Mehrere Webserver per Proxy verbinden:

[root@lvs-master conf.d]# cat fxproxy.conf 
Server { 
  hören Sie 80; 
  Servername 10.0.0.136; 
 
  Standort / { 
      Proxy-Passwort http://10.0.0.137; 
      Proxy_Set_Header X-Real-IP $Remote_Addr; 
        } 
  location /web2 { #Weiteren Standort hinzufügen 
      Proxy-Passwort http://10.0.0.111; 
      Proxy_Set_Header X-Real-IP $Remote_Addr;   
        } 
 
[root@lvs-backup ~]# cd /var/www/html/ #Geben Sie den Webserver2 unter 10.0.0.111 ein 
[root@lvs-backup html]# mkdir web 
[root@lvs-backup html]# echo "<html>10.0.0.111</html>" > index.html 
# Versuchen wir, auf dem Client darauf zuzugreifen: 
[root@elk ~]# curl 10.0.0.136/web2/ 
<html> 
10.0.0.111 
</html> 
#Zugriff erfolgreich

3. Lastverteilung

Es gibt viele Möglichkeiten, Lastausgleich zu implementieren. Das häufig verwendete LVS ist ein vierschichtiger Lastausgleich, und nginx ist ein siebenschichtiger Lastausgleich. Sie können online nach relevanten Informationen suchen.

3.1 Umgebung Einführung

3.2 Konfiguration Einführung

1. Upstream ist das HTTP-Upstream-Modul von Nginx. Dieses Modul verwendet einen einfachen Planungsalgorithmus, um einen Lastenausgleich von der Client-IP zum Backend-Server zu erreichen. In den obigen Einstellungen wird durch die Upstream-Direktive ein Load Balancer-Name 1.2.3.4 angegeben. Dieser Name kann beliebig vergeben und später dort direkt aufgerufen werden, wo er benötigt wird.

2. Das Lastausgleichsmodul von Nginx unterstützt derzeit vier Planungsalgorithmen, die im Folgenden vorgestellt werden. Die letzten beiden sind Planungsalgorithmen von Drittanbietern.

  • Abfrage (Standard). Jede Anfrage wird in chronologischer Reihenfolge nacheinander einem anderen Backend-Server zugewiesen. Bei einem Ausfall eines Backend-Servers wird das fehlerhafte System automatisch eliminiert, sodass der Benutzerzugriff nicht beeinträchtigt wird. Gewicht gibt das Polling-Gewicht an. Je höher der Gewichtungswert, desto höher die Zugriffswahrscheinlichkeit. Wird hauptsächlich verwendet, wenn die Leistung der einzelnen Backend-Server ungleichmäßig ist.
  • ip_hash. Jede Anforderung wird entsprechend dem Hash-Ergebnis der Zugriffs-IP zugewiesen, sodass Besucher mit derselben IP-Adresse auf einen festen Backend-Server zugreifen, wodurch das Problem der Sitzungsfreigabe dynamischer Webseiten effektiv gelöst wird.
  • gerecht. Dies ist ein intelligenterer Lastausgleichsalgorithmus als die beiden oben genannten. Dieser Algorithmus kann einen intelligenten Lastausgleich basierend auf Seitengröße und Ladezeit durchführen, d. h. er verteilt Anforderungen basierend auf der Antwortzeit des Backend-Servers, wobei Anforderungen mit kürzeren Antwortzeiten Vorrang erhalten. Nginx selbst unterstützt Fair nicht. Wenn Sie diesen Planungsalgorithmus verwenden müssen, müssen Sie das Modul upstream_fair von Nginx herunterladen.
  • url_hash. Diese Methode verteilt Anforderungen entsprechend dem Hash-Ergebnis der aufgerufenen URL, sodass jede URL an denselben Backend-Server weitergeleitet wird, was die Effizienz des Backend-Cache-Servers weiter verbessern kann. Nginx selbst unterstützt url_hash nicht. Wenn Sie diesen Planungsalgorithmus verwenden müssen, müssen Sie das Nginx-Hash-Softwarepaket installieren.

3. Vom Upstream unterstützte Statusparameter

Im HTTP-Upstream-Modul können Sie die IP-Adresse und den Port des Backend-Servers über die Serverdirektive angeben und außerdem den Status jedes Backend-Servers in der Lastausgleichsplanung festlegen. Häufig verwendete Zustände sind:

  • down: Zeigt an, dass der aktuelle Server vorübergehend nicht am Lastausgleich teilnimmt.
  • Backup, eine reservierte Backup-Maschine. Die Backup-Maschine wird nur angefordert, wenn alle anderen Maschinen, die keine Backup-Maschinen sind, ausfallen oder ausgelastet sind, sodass die Belastung dieser Maschine am geringsten ist.
  • max_fails, die Anzahl der zulässigen Anforderungsfehler, der Standardwert ist 1. Wenn die maximale Anzahl überschritten wird, wird ein durch das Modul proxy_next_upstream definierter Fehler zurückgegeben.
  • fail_timeout, die Zeit bis zur Unterbrechung des Dienstes nach max_fails-Fehlern. max_fails kann zusammen mit fail_timeout verwendet werden.

Hinweis: Wenn der Lastplanungsalgorithmus „ip_hash“ ist, kann der Status des Backend-Servers in der Lastausgleichsplanung nicht „Gewicht“ oder „Sicherung“ sein.
Schauen wir uns die konkrete Konfiguration an:

[root@lvs-master conf.d]# cat ../nginx.conf 
http { 
  /etc/nginx/mime.types einschließen; 
  Standardtyp Anwendung/Oktett-Stream; 
 
  log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
           '$status $body_bytes_sent "$http_referer" ' 
           '"$http_user_agent" "$http_x_forwarded_for"'; 
 
  Zugriffsprotokoll /var/log/nginx/access.log Haupt; 
 
  sendfile an; 
  #tcp_nopush ein; 
 
  KeepAlive-Timeout 65; 
 
  #gzip ein; 
upstream 1.2.3.4 { 
  Server 10.0.0.111:80; 
  Server 10.0.0.137:80; 
  } 
  schließen Sie /etc/nginx/conf.d/*.conf ein; 
} 
 
[root@lvs-master conf.d]# cat slb.confserver  
{  
Standort / {  
   Proxy-Passwort http://1.2.3.4; Proxy-Set-Header X-Real-IP $remote_addr;  
      } 
#Hinweis: Upstream wird außerhalb von Server{} definiert und kann nicht innerhalb von Server{} definiert werden. Nachdem Sie den Upstream definiert haben, referenzieren Sie ihn einfach mit Proxy_Pass.

4. Testergebnisse

[root@elk ~]# curl 10.0.0.136 
<html> 
10.0.0.111 
</html> 
[root@elk ~]# curl 10.0.0.136 
<html> 
10.0.0.137 
</html> 
[root@elk ~]# curl 10.0.0.136 
<html> 
10.0.0.111 
</html> 
#Das Ergebnis ist, dass Server1 und 2 abwechselnd angezeigt werden, was darauf hinweist, dass die Standardmethode zum Lastenausgleich Polling ist.

5. Gesundheitscheck

Im Allgemeinen erfordern Integritätsprüfungen Keepalived, aber nginx verfügt auch über entsprechende Parameter, die festgelegt werden können.

max_fails, die Anzahl der zulässigen Anforderungsfehler, der Standardwert ist 1. Wenn die maximale Anzahl überschritten wird, wird ein durch das Modul proxy_next_upstream definierter Fehler zurückgegeben.

fail_timeout, die Zeit bis zur Unterbrechung des Dienstes nach max_fails-Fehlern. max_fails kann zusammen mit fail_timeout für Integritätsprüfungen verwendet werden.

[root@lvs-master conf.d]# cat ../nginx.conf 
http {   
  /etc/nginx/mime.types einschließen; 
  Standardtyp Anwendung/Oktett-Stream; 
 
  log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
           '$status $body_bytes_sent "$http_referer" ' 
           '"$http_user_agent" "$http_x_forwarded_for"'; 
 
  Zugriffsprotokoll /var/log/nginx/access.log Haupt; 
 
  sendfile an; 
  #tcp_nopush ein; 
 
  KeepAlive-Timeout 65; 
 
  #gzip ein; 
  upstream 1.2.3.4 { 
  Server 10.0.0.111:80 Gewicht=1 max_fails=2 fail_timeout=2; 
  Server 10.0.0.137:80 Gewicht=1 max_fails=2 fail_timeout=2; 
  } 
  schließen Sie /etc/nginx/conf.d/*.conf ein; 
  } 
[root@lvs-master conf.d]# service nginx restart

6. Testen Sie die Ergebnisse

[root@kvm httpd]# service httpd stop #Webserver1-Dienst herunterfahren [root@elk ~]# curl 10.0.0.136 
<html> 
10.0.0.111 
</html> 
[root@elk ~]# curl 10.0.0.136 
<html> 
10.0.0.111 
</html> 
#Jetzt kann nur noch auf Webserver2 zugegriffen werden. 
 
[root@kvm httpd]# service httpd start #Öffnen Sie den Dienst „Web-Server1“ [root@elk ~]# curl 10.0.0.136       
<html> 
10.0.0.111 
</html> 
[root@elk ~]# curl 10.0.0.136 
<html> 
10.0.0.137 
</html> 
[root@elk ~]# curl 10.0.0.136 
<html> 
10.0.0.111 
</html>

7. Lastausgleich von ip_hash

[root@lvs-master conf.d]# cat ../nginx.conf 
upstream 1.2.3.4 { 
  ip_hash; 
  Server 10.0.0.111:80 Gewicht=1 max_fails=2 fail_timeout=2; 
  Server 10.0.0.137:80 Gewicht=1 max_fails=2 fail_timeout=2; 
  } 
[root@lvs-master conf.d]# service nginx restart 
Stoppen Sie nginx: [OK] 
Nginx wird gestartet: [OK] 
 
[root@elk ~]# curl 10.0.0.136 
<html> 
10.0.0.137 
</html> 
[root@elk ~]# curl 10.0.0.136 
<html> 
10.0.0.137 
</html> 
#Nach der Konfiguration dieses Lastenausgleichs wird >jede Anfrage entsprechend dem Hash-Ergebnis der Zugriffs-IP verteilt, sodass Besucher mit derselben IP-Adresse auf einen festen Backend-Server zugreifen. 
#Löst effektiv das Problem der Sitzungsfreigabe dynamischer Webseiten. (Im Allgemeinen wird es häufiger auf E-Commerce-Websites verwendet)

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vollständiger Prozessbericht der Nginx-Reverse-Proxy-Konfiguration
  • Detaillierte Erläuterung der Nginx-Konfigurationsparameter auf Chinesisch (Lastausgleich und Reverse-Proxy)
  • Einfache Schritte zum Konfigurieren des Nginx-Reverse-Proxys mit SSL
  • Nginx Reverse-Proxy-Konfiguration entfernt Präfix
  • Detaillierte Schritte zur Yum-Konfiguration des Nginx-Reverse-Proxys
  • Detaillierte Erläuterung der Nginx Reverse Proxy WebSocket-Konfiguration
  • Eine universelle Nginx-Schnittstelle zur Implementierung der Reverse-Proxy-Konfiguration
  • Tutorial: Nginx-Reverse-Proxy-Konfiguration zum Entfernen von Präfixen

<<:  Mycli ist ein unverzichtbares Tool für MySQL-Befehlszeilen-Enthusiasten

>>:  Implementierung eines einfachen Chatroom-Dialogs basierend auf WebSocket

Artikel empfehlen

...

Detailliertes Tutorial zur Installation von mysql8.0 mit dem Linux-Befehl yum

1. Reinigen Sie vor der Installation gründlich rp...

Analyse des rel-Attributs in HTML

.y { background: url(//img.jbzj.com/images/o_y.pn...

Ausführliche Erklärung zu MySQL vom Einstieg bis zum Aufgeben - Installation

Was Sie lernen werden 1. Softwareinstallation und...

So verwenden Sie eine VLAN-getaggte Ethernet-Karte im CentOS/RHEL-System

In einigen Szenarien möchten wir derselben Ethern...

Wo werden MySQL-Daten gespeichert?

Speicherort der MySQL-Datenbank: 1. Wenn MySQL di...

Analysieren Sie die Prinzipien und Methoden der MySQL-Replikation und -Optimierung

1. Einleitung MySQL verfügt über eine Replikation...

jQuery implementiert einen einfachen Karusselleffekt

Hallo zusammen, heute werde ich die Implementieru...