у меня есть работает Конфигурация nginx для проксирования всех запросов к серверу из диапазона исходных IP-адресов. В настоящее время у меня настроено 20 исходных IP-адресов, и конфигурация довольно обширна. Для краткости я удалил остальные 18 блоков.
Мне интересно, есть ли более простой способ сделать это. Мне нужно добавить более 100 IP-адресов, и в этом случае конфигурация будет слишком большой. Должен быть способ лучше!
Чтобы уточнить: Мне нужно, чтобы запросы исходили с одного из 100 случайных IP-адресов, предоставленных на сервере. Целевой сервер увидит, что проксированный запрос поступает с одного из 100 адресов.
Подойдет ли HAProxy или другая альтернатива для такого рода задач?
Упрощенная конфигурация 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 '';
}
}