带有不同源地址的Nginx代理

我有一个工作 nginxconfiguration代理从一系列源IP到服务器的所有请求。 我目前有20个源IP设置,configuration相当庞大。 为了简洁起见,我删除了其他18个街区。

我想知道是否有一个更简单的方法来做到这一点。 我需要添加100个以上的IP,configuration太大了。 一定会有更好的办法!

澄清:我需要从服务器上提供的100个随机IP地址之一发出的请求。 目标服务器将看到来自100个地址之一的代理请求。

HAProxy或其他替代scheme会更适合这种任务吗?

简化的nginxconfiguration:

# 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 ''; } }