Рейтинг:1

Балансировка нагрузки NGINX TCP привязывается к IP-адресу, когда он должен быть случайным, для каждого запроса.

флаг my
A X

У меня есть сервер 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 с;
    }

    
}
Рейтинг:-1
флаг za

Потому что вы должны прекратить использовать nginx в качестве балансировщика нагрузки TCP для других веб-серверов и переключите его на полноценный обратный HTTP-прокси, которым он и является. Таким образом, вы получите RR для каждого запроса, который вы хотите (с постоянными соединениями, отключенными по умолчанию), вместо распределения сеансов TCP.

A X avatar
флаг my
A X
Но разве он не должен распределять запросы в режиме TCP? @drookie
drookie avatar
флаг za
Должно и так. Просто не так, как вы хотите, потому что вы используете это неправильно.
A X avatar
флаг my
A X
Этот ответ совершенно бесполезен и расплывчат, потому что на самом деле он не отвечает на вопрос. Вопрос в том, как решить проблему.
drookie avatar
флаг za
Другого вы не получите, потому что первоначальный вопрос был извращенным примером подтасовки вещей. И это образовательная часть.
A X avatar
флаг my
A X
Вы получаете награду за «худший ответ на ошибку сервера».
drookie avatar
флаг za
Жаль, что вам нужно заработать бесконечную сумму или репутацию, чтобы даже предложить что-то подобное. С твоими знаниями и отношением это займет... дай подумать... НАВСЕГДА.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.