Saldo de carga com base em IP no nginx

1

Eu tenho dois servidores Backend em execução em 192.168.0.101:8080 e 192.168.0.102:8080.

Eu tenho nginx rodando em 192.168.0.111:80, eu quero forçar nginx a reverter o tráfego em backend srever específico por IP.

geo $upstream {
        192.168.0.150 backend-1;
        192.168.0.250 backend-2;
        default backend-1;
}

upstream backend-1 {
   ip_hash;
   server 192.168.0.101:8080;
}

upstream backend-2 {
   ip_hash;
   server 192.168.0.102:8080;
}


server {
        listen 80;

        location / {
        proxy_pass http://$upstream;
        proxy_redirect off;
            proxy_set_header Host               $host;
            proxy_set_header X-Forwarded-Host   $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Real-IP          $remote_addr;
            proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        }                                                                    
}

Estou confuso sobre essa configuração. Isso vai funcionar como isso significou? Todas as solicitações, exceto 192.168.0.150, irão para o backend-1 (192.168.0.102:8080)? e 192.168.0.250 no backend-2?

Pergunta: Não está redirecionando com base em endereços IP. Por que isso acontece?

    
por Fahad Ahammed 31.10.2016 / 06:02

1 resposta

1

A configuração de trabalho:

geo $upstream {
        default backend-1;
        192.168.0.150 backend-1;
        192.168.0.250 backend-2;
}

upstream backend-1 {
   server 192.168.0.101:8080;
}

upstream backend-2 {
   server 192.168.0.102:8080;
}


server {
        listen 80;

        location / {
        proxy_pass http://$upstream;
        proxy_redirect off;
        proxy_set_header Host               $host;
        proxy_set_header X-Forwarded-Host   $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP          $remote_addr;
        proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        }                                                                    
}
    
por Fahad Ahammed 01.11.2016 / 16:12