Wie Nginx über die Kennung im Header verteilt

WBOY
Freigeben: 2023-05-11 16:01:13
nach vorne
1047 Leute haben es durchsucht

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:

http {
    map $http_my_header $backend {
        default   backend1.example.com;
        value1    backend2.example.com;
        value2    backend3.example.com;
    }
    
    upstream backend1 {
        server 192.168.1.1:8080;
        server 192.168.1.2:8080;
    }

    upstream backend2 {
        server 192.168.2.1:8080;
        server 192.168.2.2:8080;
    }

    upstream backend3 {
        server 192.168.3.1:8080;
        server 192.168.3.2:8080;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://$backend;
        }
    }
}
Nach dem Login kopieren

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:

server {
        listen 80;
        server_name example.com;

        location /websocket {
            proxy_pass http://$backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
        }
    }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage