
Ich möchte einen Teil der URI als Upstream-Hash-Schlüssel verwenden. Die Konfiguration sieht wie folgt aus:
map $uri $dir {
~^/(.*?)/ $1;
}
upstream backServer {
server 172.10.27.223:80;
server 172.10.27.161:80;
hash $dir consistent;
}
server {
listen 80;
location / {
proxy_pass http://backServer;
}
}
Aber das ist nicht effektiv, die Anfrage wird nur an den ersten Server gesendet, unabhängig von der URI. Und ich versuche auch den Hash wieHash $dir konsistent, diese Konfiguration ist richtig wirksam.
Wie kann ich Nignx konfigurieren?
Antwort1
Möglicherweise sind in Ihrer Konfiguration einige Fehler enthalten, da Folgendes funktioniert:
map $uri $hashtest {
"~^(.*)/" "$1";
}
upstream nodeServers {
server 192.168.1.3:8888;
server 192.168.1.3:8889;
hash $hashtest consistent;
}
server {
...
location /xyz/ {
proxy_pass http://nodeServers/;
...
}
...
}