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 '';
}
}
Tags proxy nginx reverse-proxy haproxy