Proxy Nginx com endereço de origem variável

4

Eu tenho uma configuração nginx funcionando para fazer proxy de todas as solicitações para um servidor a partir de um intervalo de IPs de origem. Atualmente, tenho 20 IPs de origem configurados e a configuração é bastante grande. Eu removi os outros 18 blocos por brevidade.

Eu estou querendo saber se existe uma maneira mais fácil de fazer isso. Eu preciso adicionar mais de 100 IPs e a configuração seria muito grande dessa maneira. Deve haver uma maneira melhor!

Para esclarecer: preciso que os pedidos sejam originados de um dos 100 endereços IP aleatórios provisionados no servidor. O servidor de destino verá a solicitação enviada por proxy de um dos 100 endereços.

HAProxy ou outra alternativa seria mais adequada para esse tipo de tarefa?

Configuração simplificada do nginx:

# nginx proxies all requests to one of these servers
upstream cluster {
  # one server line for every server block configured below
  server 127.0.0.1:8000;
  server 127.0.0.1:8001;
  # 18 more...  

  least_conn;
  keepalive 16;
}

# one server block for every source ip address configured
server {
  listen 8000;

  location / {
    proxy_pass https://destination;
    # ip address below is one of 20 addresses outgoing requests will bind to
    proxy_bind 10.0.0.1;
  }
}

server {
  listen 8001;

  location / {
    proxy_pass https://destination;
    # ip address below is one of 20 addresses outgoing requests will bind to
    proxy_bind 10.0.0.2;
  }
}

# 18 more server blocks

# redirect all http traffic to https
server {
  listen 80;
  listen [::]:80;

  return 301 https://$host$request_uri;
}

# proxy requests to upstream, which proxies requests to destination
server {
  listen 443 ssl;
  listen [::]:443 ssl;

  location / {
    proxy_pass http://cluster;
    proxy_http_version 1.1;
    proxy_set_header Connection '';
  }
}
    
por Steffan Long 24.01.2016 / 21:39

0 respostas