Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Úvod
Reverzní proxy server je možné použít k omezování požadavků před jejich směrováním na cílové servery. To může snížit zatížení cílových serverů, přidat vrstvu ochrany a zajistit implementaci konzistentních zásad napříč vašimi aplikacemi.
Tato funkce je dostupná jenom v případě, že používáte .NET 7.0 nebo novější.
Výchozí hodnoty
U požadavků se neprovádí žádné omezování rychlosti, pokud není povoleno v konfiguraci trasy nebo aplikace. Middleware omezování rychlosti (app.UseRateLimiter()
) ale může použít výchozí limiter použitý pro všechny trasy a nevyžaduje žádné vyjádření výslovného souhlasu z konfigurace.
Příklad:
services.AddRateLimiter(options => options.GlobalLimiter = globalLimiter);
Konfigurace
Zásady omezení rychlosti lze zadat pro každou trasu prostřednictvím RouteConfig.RateLimiterPolicy a mohou být nastaveny v oddílech Routes
konfiguračního souboru. Stejně jako u jiných vlastností trasy je možné toto nastavení upravit a znovu načíst bez restartování proxy serveru. Názvy zásad nerozlišují velikost písmen.
Příklad:
{
"ReverseProxy": {
"Routes": {
"route1" : {
"ClusterId": "cluster1",
"RateLimiterPolicy": "customPolicy",
"Match": {
"Hosts": [ "localhost" ]
}
}
},
"Clusters": {
"cluster1": {
"Destinations": {
"cluster1/destination1": {
"Address": "https://localhost:10001/"
}
}
}
}
}
}
zásady RateLimiter představují základní koncept ASP.NET, který proxy server využívá. Proxy poskytuje výše uvedenou konfiguraci pro určení zásad pro jednotlivé trasy a zbytek se zpracovává stávajícím middlewarem pro omezování rychlosti ASP.NET Core.
Zásady RateLimiter je možné nakonfigurovat ve službách následujícím způsobem:
services.AddRateLimiter(options =>
{
options.AddFixedWindowLimiter("customPolicy", opt =>
{
opt.PermitLimit = 4;
opt.Window = TimeSpan.FromSeconds(12);
opt.QueueProcessingOrder = QueueProcessingOrder.OldestFirst;
opt.QueueLimit = 2;
});
});
Pak přidejte middleware RateLimiter.
app.UseRateLimiter();
app.MapReverseProxy();
Informace o nastavení vámi preferovaného typu omezení rychlosti najdete v dokumentaci k omezení rychlosti.
Zakázat omezování rychlosti
Zadání hodnoty disable
v parametru RateLimiterPolicy
trasy znamená, že middleware omezovače rychlosti na tuto trasu nepoužije žádné zásady, a to ani výchozí zásady.