Trebuie să reduc conexiunile/cererile pe serverul NGINX atât pentru cererile http, cât și pentru http2. Cu toate acestea, limitarea nu trebuie aplicată adreselor IP specifice CDN (care sunt deja populate în bloc geografic)
Am următoarea configurație pentru a accelera cererile http/http2 atunci când cerința specifică CDN nu este în vigoare.
harta $http2 $http1connlimitkey {
Mod implicit "";
"" $binary_remote_addr;
}
harta $http2 $http2connlimitkey {
implicit $binary_remote_addr;
"" "";
}
Oricare dintre http1connlimitkey
și http2connlimitkey
tasta este setată la binary_remote_addr
în funcție de tipul de conexiune.
Acum, indiferent de tipul de conexiune, dacă conexiunea provine de la CDN, trebuie să setez cheile de mai sus să se golească pentru a scăpa de limitarea conexiunii.
Urmăr abordarea dată în această soluție Cum să limitați rata în nginx, dar includerea/excluderea anumitor adrese IP? pentru a mapa originea cererii.
geo $listă albă {
implicit 0;
# CIDR din lista de mai jos nu sunt limitate
1.2.3.0/24 1;
9.10.11.12/32 1;
}
harta $listă albă $limită {
0 $adresă_binară_la distanță;
1 "";
}
Cum setez http1connlimitkey
și http2connlimitkey
pentru a goli dacă cererea este de la CDN.
Unul dintre modurile în care mă gândesc este să am o hartă ca mai jos
harta $listă albă $cdn {
0 ""
1 „CDN”;
}
harta „$cdn$http2” $http1connlimitkey {
"^CDN" ""
"" $binary_remote_addr;
Mod implicit "";
}
harta „$cdn$http2” $http2connlimitkey {
"^CDN" ""
implicit $binary_remote_addr;
"" "";
}
Orice altă modalitate mai bună de a gestiona același lucru.
Trebuie să scap atât de limitele http și http2 în cazul în care cererea provine de la CDN.
Mulțumiri