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.
Reverzní proxy server je možné použít před službou Azure SignalR. Reverzní proxy servery se nacházejí mezi klienty a službou Azure SignalR a mohou pomoci také v různých scénářích s dalšími službami. Reverzní proxy servery můžou například vyrovnávat zatížení různých požadavků klientů na různé back-endové služby, obvykle můžete nakonfigurovat různá pravidla směrování pro různé požadavky klientů a zajistit bezproblémové uživatelské prostředí pro uživatele, kteří přistupují k různým back-endovým službám. Můžou také chránit vaši serverovou infrastrukturu před běžnými útoky na zranitelnosti pomocí centralizované ochrany. Služby jako Azure Application Gateway, Azure API Management nebo Akamai můžou fungovat jako reverzní proxy servery.
Běžná architektura využívající reverzní proxy server s Azure SignalR je následující:
Důležité
Surové připojovací řetězce jsou v tomto článku uvedeny jen pro demonstrační účely.
Připojovací řetězec obsahuje autorizační informace potřebné pro vaši aplikaci pro přístup ke službě Azure SignalR. Přístupový klíč uvnitř připojovací řetězec je podobný kořenovému heslu pro vaši službu. V produkčních prostředích vždy chraňte přístupové klíče. Pomocí služby Azure Key Vault můžete bezpečně spravovat a obměňovat klíče a zabezpečit připojovací řetězec pomocí ID Microsoft Entra a autorizovat přístup pomocí Microsoft Entra ID.
Vyhněte se distribuci přístupových klíčů ostatním uživatelům, jejich pevnému kódování nebo jejich uložení kdekoli ve formátu prostého textu, který je přístupný ostatním uživatelům. Otočte klíče, pokud se domníváte, že mohly být ohroženy.
Obecné postupy
Při použití reverzního proxy serveru před službou SignalR Service existuje několik obecných postupů.
Surové připojovací řetězce jsou v tomto článku uvedeny jen pro demonstrační účely. V produkčních prostředích vždy chraňte přístupové klíče. Pomocí služby Azure Key Vault můžete bezpečně spravovat a obměňovat klíče a zabezpečit připojovací řetězec pomocí ID Microsoft Entra a autorizovat přístup pomocí Microsoft Entra ID.
Nezapomeňte přepsat příchozí hlavičku HOST s adresou URL služby Azure SignalR, například
https://demo.service.signalr.net. Azure SignalR je služba s více tenanty a spoléhá na hlavičkuHOSTpro určení správného koncového bodu. Například při konfiguraci služby Application Gateway pro Azure SignalR vyberte u možnosti Přepsat novým názvem hostitele možnost Ano.Když klient prochází přes reverzní proxy server do Azure SignalR, nastavte
ClientEndpointji jako adresu URL reverzního proxy serveru. Když klient vyjednás vaším centrálním serverem, server centra vrátí adresu URL definovanouClientEndpointpro připojení klienta. Další podrobnosti najdete tady.Existují dva způsoby konfigurace
ClientEndpoint:Přidejte do připojovacího
ClientEndpointřetězce oddíl:Endpoint=...;AccessKey=...;ClientEndpoint=<reverse-proxy-URL>Konfigurace
ClientEndpointpři voláníAddAzureSignalR:services.AddSignalR().AddAzureSignalR(o => { o.Endpoints = new Microsoft.Azure.SignalR.ServiceEndpoint[1] { new Microsoft.Azure.SignalR.ServiceEndpoint("<azure-signalr-connection-string>") { ClientEndpoint = new Uri("<reverse-proxy-URL>") } }; })
Když klient prochází přes reverzní proxy server do Azure SignalR, existují dva typy požadavků:
- Požadavek HTTP post na
<reverse-proxy-URL>/client/negotiate/, který nazýváme jako žádost o vyjednání - Požadavek na připojení WebSocket/SSE/LongPolling v závislosti na typu přenosu na
<reverse-proxy-URL>/client/, který nazýváme žádostí o připojení.
Ujistěte se, že reverzní proxy server podporuje oba typy přenosu pro
/client/dílčí cestu. Pokud je například typ přenosu WebSocket, ujistěte se, že reverzní proxy server podporuje pro dílčí cestu protokol HTTP i WebSocket/client/.Pokud jste nakonfigurovali několik služeb SignalR za reverzním proxy serverem, ujistěte se, že
negotiatepožadavek aconnectpožadavek se stejnýmasrs_request_idparametrem dotazu (což znamená, že jsou pro stejné připojení) směrovány do stejné instance služby SignalR.- Požadavek HTTP post na
Pro
ServerSentEvent(SSE) se ujistěte, že váš reverzní proxy server nevyrovnává ani nemá v mezipaměti odpovědi. Například služba API Management tady uvádí kontrolní položky při konfiguraci rozhraní API pro události odesílané serverem.Při použití reverzního proxy serveru můžete službu SignalR dále zabezpečit zakázáním přístupu k veřejné síti a použitím privátních koncových bodů, abyste povolili pouze privátní přístup z reverzního proxy serveru ke službě SignalR prostřednictvím virtuální sítě.
Další kroky
Přečtěte si další informace o interních službách Azure SignalR.