Utilizăm Windows NLB în mediul nostru de producție pentru a echilibra încărcarea cererilor https către zece servere IIS.
Setările sunt:
Setare |
Valoare |
Port |
443 |
Protocol |
TCP |
Modul de filtrare |
Gazde multiple |
Afinitate |
Singur |
Timeout (în minute) |
Dezactivat |
Deci, atâta timp cât nu există nicio modificare în apartenența clusterului NLB, adică nicio gazdă nu părăsește/se alătură clusterului, același ip sursă va fi întotdeauna mapat la același server IIS țintă (conform docs pentru Server 2003 R2 - nu pot găsi documente oficiale mai noi care să detalieze afinitatea):
Acum, ce se întâmplă dacă dau jos unele sau toate mașinile și le aduc pe toate din nou, astfel încât apartenența la cluster să fie aceeași ca înainte de a demonta mașinile. Se vor mapa din nou aceleași adrese IP sursă la aceleași servere țintă ca înainte sau maparea depinde de lucruri precum ordinea de alăturare a clusterelor sau ceva nedeterminist?
N.B. Tocmai am găsit asta pe parcursul convergenţa, maparea s-ar putea schimba:
În operațiuni normale, dacă se utilizează o singură afinitate, NLB va garanta că toate conexiunile care provin de la aceeași sursă IP vor atinge același server. Aceasta ar include mai multe conexiuni TCP ale aceleiași sesiuni SSL. Cu toate acestea, modificările de configurare pot determina NLB să accepte conexiuni diferite ale aceleiași sesiuni SSL de către servere diferite în timpul convergenței. Ca urmare, sesiunea SSL este întreruptă.
Ceea ce este suficient de corect (și poate fi atenuat prin activarea „afinității extinse” folosind valoarea „timeout”, după cum explică articolul legat). Oricum ma intereseaza statul după convergenţă.