Nginx kann Anfragen basierend auf benutzerdefinierten Kennungen im Anfrageheader an verschiedene Server verteilen. Konkret können Sie die Map-Direktive verwenden, um den benutzerdefinierten Bezeichner im Anforderungsheader einer anderen Back-End-Serveradresse zuzuordnen, und dann die Proxy_pass-Direktive verwenden, um die Anforderung an den entsprechenden Back-End-Server weiterzuleiten.
Das Folgende ist eine Beispielkonfigurationsdatei:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
In dieser Konfigurationsdatei definieren wir eine Map-Direktive, um die Variable $http_my_header im Anforderungsheader einer anderen Endserveradresse zuzuordnen . Wenn der Wert von $http_my_header value1 ist, wird die Anfrage an backend2.example.com weitergeleitet; wenn der Wert von $http_my_header value2 ist, wird die Anfrage an backend3.example.com weitergeleitet backend1.example.com.
Als nächstes definieren wir drei Upstream-Blöcke, die die Backend-Servergruppen Backend1, Backend2 und Backend3 darstellen. Jede Gruppe enthält mehrere Backend-Server. Im Serverblock verwenden wir die Direktive „proxy_pass“, um die Anfrage an den entsprechenden Backend-Server weiterzuleiten.
Wenn nach dieser Konfiguration der Wert von $http_my_header im Anforderungsheader Wert 1 ist, wird die Anforderung an die Backend-Servergruppe Backend2 weitergeleitet. Wenn der Wert von $http_my_header Wert 2 ist, wird die Anforderung weitergeleitet an die Backend-Servergruppe weitergeleitet; andernfalls wird die Anfrage an die Backend-Servergruppe weitergeleitet.
Socket konfigurieren und mehrere Konfigurationen hinzufügen:
1 2 3 4 5 6 7 8 9 10 11 |
|
Das obige ist der detaillierte Inhalt vonWie Nginx über die Kennung im Header verteilt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!