Puncte:1

Echilibrarea încărcăturii NGINX TCP este ip-lipicioasă când ar trebui să fie aleatorie, la cerere

drapel my
A X

Am un server NGINX folosit ca echilibrator de încărcare TCP. Este implicit la echilibrarea încărcăturii round-robin, așa că așteptarea mea este ca pentru un anumit IP client, de fiecare dată când atinge punctul final, vor primi un server backend în amonte diferit pentru fiecare cerere. Dar, în schimb, ceea ce se întâmplă este că primesc același server în amonte de fiecare dată și fiecare distinct IP-ul clientului primește un server distinct în amonte. Acest lucru este rău pentru că clienții mei generează mult trafic și provoacă hotspot-uri, deoarece orice client poate utiliza doar un server din amonte. Se pare că rotește încet un anumit IP client pe serverele din amonte; din nou, vreau să atribuie aleatoriu fiecare cerere la o cerere în amonte.

Cum pot face NGINX să aloce aleatoriu serverul upstream pentru fiecare cerere? Am încercat cuvântul cheie aleatoriu și nu a avut niciun efect. Orice ajutor ar fi foarte apreciat.

utilizator nginx;
worker_proceses auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Încărcați module dinamice. Vedeți /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

evenimente {
    conexiuni_muncitor 1024;
}

curent {

    în amonte api_backend_http {
        server node1.mydomain.com:80;
        server node2.mydomain.com:80;
        server node6.mydomain.com:80;
        server node14.mydomain.com:80;
        server node18.mydomain.com:80;
        server node19.mydomain.com:80;
        server node21.mydomain.com:80;
        server node22.mydomain.com:80;
        server node24.mydomain.com:80;
    }

    în amonte api_backend_https {
        server node1.mydomain.com:443;
        server node2.mydomain.com:443;
        server node6.mydomain.com:443;
        server node14.mydomain.com:443;
        server node18.mydomain.com:443;
        server node19.mydomain.com:443;
        server node21.mydomain.com:443;
        server node22.mydomain.com:443;
        server node24.mydomain.com:443;
    }

    Server {
        asculta 80;
        proxy_pass api_backend_http;
        dimensiunea_buffer_proxy 16k;
        proxy_connect_timeout 1s;
    }

    Server {
        asculta 443;
        proxy_pass api_backend_https;
        dimensiunea_buffer_proxy 16k;
        proxy_connect_timeout 1s;
    }

    
}
Puncte:-1
drapel za

Pentru că ar trebui să încetați să utilizați nginx ca echilibrator de încărcare TCP pentru alte servere web și comutați-l la un proxy invers HTTP cu drepturi depline, ceea ce este. În acest fel, veți obține RR-ul pe cerere, pe care îl doriți (cu conexiunile persistente dezactivate implicit), în loc de distribuția sesiunii TCP.

A X avatar
drapel my
A X
Dar nu ar trebui să distribuie cererile în modul TCP? @drookie
drookie avatar
drapel za
Ar trebui și așa face. Doar nu așa cum vrei, pentru că îl folosești greșit.
A X avatar
drapel my
A X
Acest răspuns este total inutil și vag, deoarece nu răspunde de fapt la întrebare. Întrebarea este cum să rezolvi problema.
drookie avatar
drapel za
Nu vei primi alta, pentru că întrebarea inițială a fost un exemplu pervertit de organizare a lucrurilor. Și asta este partea educațională.
A X avatar
drapel my
A X
Câștigi premiul pentru „cel mai prost răspuns la defecțiunea serverului”
drookie avatar
drapel za
Păcat că trebuie să câștigi o sumă infinită sau o reputație pentru a propune chiar așa ceva. Cu cunoștințele și atitudinea voastră va fi nevoie... lasă-mă să mă gândesc... PENTRU ÎNTÂND.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.