Quero usar parte do uri como chave hash upstream, a configuração é a seguinte:
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;
}
}
Mas isso não tem efeito, a solicitação só é enviada para o primeiro servidor, independente da uri. E eu também tento o hash comohash $dir consistente, essa configuração está correta.
Como posso configurar o nigx?
Responder1
Pode haver alguns erros na sua configuração, pois funciona:
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/;
...
}
...
}