So konfigurieren Sie Nginx, um den Datenverkehr basierend auf dem letzten Segment der Anforderungs-IP aufzuteilen

So konfigurieren Sie Nginx, um den Datenverkehr basierend auf dem letzten Segment der Anforderungs-IP aufzuteilen

Es handelt sich hauptsächlich um den Konfigurationssprung des if-Urteils im Standortparameter. Die Umleitung kann die Belastung und den Druck des Servers verringern. Dies ist eine sehr gängige Serverbereitstellungsarchitektur.
Springen Sie entsprechend dem Bereich des letzten Segments der IP

#Domänenname, IP, Port und andere Informationen ändern Sie bitte selbst upstream huaji-01.com {
 Server 192.168.1.100:8080;
}

Upstream huaji-02.com {
 Server 192.168.1.200:8080;
}

Server {

 hören Sie 80;
 Servername www.huaji.com;

 Standort /
 {
  wenn ( $remote_addr ~* ^(.*)\.(.*)\.(.*)\.[1,125]$) {
    Proxy-Passwort http://huaji-01.com;
    brechen;
  }

  Proxy-Passwort http://huaji-02.com;
 }

}

Das obige Beispiel leitet Anfragen mit IP-Adressen, die auf 1-125 enden, an huaji-01.com weiter, und andere an huaji-02.com. Sie können den regulären Ausdruck auch ändern, zum Beispiel

Regel: $remote_addr ~* ^(.*)\.(.*)\.(.*)\.*[0268]$ Gerade IPs, die mit 0268 enden, springen zu huaji-01.com, und andere springen zum zweiten Domänennamen.

Regel: $remote_addr ~* ^(112)\.(.*)\.(.*)\.(.*)$ IPs, die mit 112 beginnen, werden zum angegebenen Domänennamen umgeleitet;

Regel: $http_x_forwarded_for ~* ^(112)\.(.*)\.(.*)\.(.*)$ Leitet den Verkehr basierend auf dem Weiterleitungsadresssegment um und leitet den Verkehr, der mit 112 beginnt, an den angegebenen Domänennamen um.

Die Bedeutung der bedingten Beurteilung durch die if-Anweisung:

Übereinstimmung mit regulären Ausdrücken, wobei:

~ für Groß- und Kleinschreibung

~* ist eine Groß-/Kleinschreibung ignorierende Übereinstimmung.

Bei !~ und !~* wird zwischen Groß- und Kleinschreibung unterschieden, bei anderen Übereinstimmungen wird zwischen Groß- und Kleinschreibung unterschieden.

Datei- und Verzeichnisübereinstimmung, wobei:

Mit -f und !-f wird ermittelt, ob eine Datei existiert

Mit -d und !-d wird ermittelt, ob ein Verzeichnis existiert

-e und !-e werden verwendet, um zu bestimmen, ob eine Datei oder ein Verzeichnis existiert

-x und !-x werden verwendet, um zu bestimmen, ob die Datei ausführbar ist

Der letzte Parameter der Rewrite-Direktive ist das Flag-Tag, das Folgendes enthält:

last entspricht dem Flag [L] in Apache, was „umschreiben“ bedeutet.

break Nachdem diese Regel abgeglichen wurde, wird der Abgleich beendet und die folgenden Regeln werden nicht mehr abgeglichen.

Die Umleitung gibt eine temporäre 302-Umleitung zurück und die Browseradresse zeigt nach dem Sprung die URL-Adresse an.

permanent gibt eine permanente 301-Umleitung zurück und die Browseradresse zeigt nach dem Sprung die URL-Adresse an.

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:
  • Beispielcode zur Implementierung der IP-Zugriffsumleitung durch den Nginx-Reverseproxy

<<:  Vue verbessert die Seitenantwortgeschwindigkeit durch Lazy Loading

>>:  MySQL-Paket für Abfrage ist zu groß – Problem und Lösung

Artikel empfehlen

Detaillierte Erklärung, wo das von Docker abgerufene Image gespeichert ist

20200804Nachtrag: Der Artikel könnte falsch sein....

Detaillierte Erklärung zur Verwendung der Vue.js-Renderfunktion

Vue empfiehlt in den meisten Fällen die Verwendun...

Gründe und Methoden zum Warten auf die Sperre der Tabellenmetadaten in MySQL

Wenn MySQL DDL-Operationen wie „Alter Table“ ausf...

9 praktische Tipps zum Erstellen von Webinhaltsseiten

Inhalt 1. Geben Sie den Lesern einen Grund zu blei...

So umgehen Sie unbekannte Feldnamen in MySQL

Vorwort Dieser Artikel stellt die fünfte Frage vo...

Lösung für ungültige obere Ränder von Elementen in Div-Tags

Genau wie der Titel sagt. Die Frage ist sehr merkw...

Kapitel zur Entwicklung von WeChat-Applets: Fallstricke

Vor kurzem habe ich an der Entwicklung des ersten...

Kodierungsprobleme und -lösungen, wenn MySQL zwei Tabellen verknüpft

Wenn Mysql zwei Tabellen verknüpft, wird eine Feh...

Implementierung eines Puzzlespiels mit js

In diesem Artikel wird der spezifische Code von j...

Vue+echarts realisiert gestapelte Balkendiagramme

In diesem Artikel wird der spezifische Code von V...

Die neueste Installations- und Konfigurationsmethode für MySQL-5.7.21

1. Entpacken Sie das heruntergeladene MySQL-Kompr...