nginx encaminha os clientes ip e port

1

Eu tenho o nginx agindo como um balanceador de carga.

Eu tenho 3 servidores rodando atrás do nginx e o redis rodando pelos 3 servidores.

Eles estão todos rodando em imagens docker na mesma instância do ubuntu.

AQUI ESTÁ O PROBLEMA : Eu preciso gravar os usuários ip e porta para uso futuro. Mas webSockets e udp retornam:

0.0.0.0:0

Isso é ruim, obviamente. Tem que haver uma maneira de encaminhar as informações dos clientes. Eu estou supondo que este é um cabeçalho de algum tipo e nginx pode utilizá-lo?

edit - configuração atual:

nginx.conf:

worker_processes 7;

# server context

events { worker_connections 1024; }

# Load balance WS traffic across the three servers
http {

    upstream node-app {
    least_conn;
    server node1:8080 weight=25 max_fails=3 fail_timeout=30s;
    server node2:8080 weight=25 max_fails=3 fail_timeout=30s;
    server node3:8080 weight=25 max_fails=3 fail_timeout=30s;
    }

    server {
    listen 80;

    location / {
      proxy_pass http://node-app;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_cache_bypass $http_upgrade;
    }
    }

}

# Load balance UDP-based DNS traffic across the three servers
stream {

  upstream node-app-udp {
    least_conn;
    server node1:1337;
    server node2:1337;
    server node3:1337;
  }

  server {
      listen          1337 udp;
      listen          1337; #tcp
      proxy_pass      node-app-udp;
      proxy_timeout   3s;
      proxy_responses 3;
  }

}
    
por Craig O'Connor 30.01.2017 / 14:51

1 resposta

0

você não encaminha o IP nos cabeçalhos de solicitação que você envia de volta para seus nós. Uma boa abordagem seria definir um mínimo no bloco localização :

proxy_set_header  X-Forwarded-For $remote_addr;  
proxy_set_header  X-Forwarded-Host $remote_addr;
    
por 30.01.2017 / 15:54

Tags