У меня есть сервер NGINX, который используется в качестве балансировщика нагрузки TCP. По умолчанию используется циклическая балансировка нагрузки, поэтому я ожидаю, что для заданного IP-адреса клиента каждый раз, когда они достигают конечной точки, они будут получать другой сервер восходящего потока для каждого запроса. Но вместо этого происходит то, что они каждый раз получают один и тот же вышестоящий сервер, и каждый отчетливый IP-адрес клиента получает отдельный вышестоящий сервер. Это плохо, потому что мои клиенты генерируют много трафика и вызывают точки доступа, потому что любой клиент может использовать только один вышестоящий сервер. Кажется, что данный клиентский IP-адрес медленно меняется на вышестоящих серверах; снова я хочу, чтобы он случайным образом назначал каждый запрос восходящему потоку для каждого запроса.
Как я могу заставить NGINX случайным образом назначать вышестоящий сервер для каждый запрос? Я пробовал случайное ключевое слово, и это не имело никакого эффекта. Любая помощь будет принята с благодарностью.
пользователь nginx;
рабочие_процессы авто;
журнал_ошибок /var/log/nginx/error.log;
pid /run/nginx.pid;
# Загрузить динамические модули. См. /usr/share/nginx/README.dynamic.
включить /usr/share/nginx/modules/*.conf;
События {
worker_connections 1024;
}
транслировать {
восходящий API_backend_http {
сервер node1.mydomain.com:80;
сервер node2.mydomain.com:80;
сервер node6.mydomain.com:80;
сервер node14.mydomain.com:80;
сервер node18.mydomain.com:80;
сервер node19.mydomain.com:80;
сервер node21.mydomain.com:80;
сервер node22.mydomain.com:80;
сервер node24.mydomain.com:80;
}
восходящий API_backend_https {
сервер node1.mydomain.com:443;
сервер node2.mydomain.com:443;
сервер node6.mydomain.com:443;
сервер node14.mydomain.com:443;
сервер node18.mydomain.com:443;
сервер node19.mydomain.com:443;
сервер node21.mydomain.com:443;
сервер node22.mydomain.com:443;
сервер node24.mydomain.com:443;
}
сервер {
слушать 80;
прокси_пасс API_backend_http;
proxy_buffer_size 16 КБ;
proxy_connect_timeout 1 с;
}
сервер {
слушать 443;
прокси_пасс API_backend_https;
proxy_buffer_size 16 КБ;
proxy_connect_timeout 1 с;
}
}