Skip to content

Commit 21f702e

Browse files
authored
Update signalr-howto-reverse-proxy-overview.md
1 parent 6d685e6 commit 21f702e

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

articles/azure-signalr/signalr-howto-reverse-proxy-overview.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ A common architecture using a reverse proxy server with Azure SignalR is as belo
1818

1919
There are several general practices to follow when using a reverse proxy in front of SignalR Service.
2020

21-
* Make sure to rewrite the incoming HTTP `HOST` header with the Azure SignalR service URL, e.g. `https://demo.service.signalr.net`. Azure SignalR is a multi-tenant service, and it relies on the `HOST` header to resolve to the correct endpoint. For example, when [configuring Application Gateway](./signalr-howto-work-with-app-gateway.md#create-an-application-gateway-instance) for Azure SignalR, select **Yes** for the option *Override with new host name*.
21+
* Make sure to rewrite the incoming HTTP [HOST header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host) with the Azure SignalR service URL, e.g. `https://demo.service.signalr.net`. Azure SignalR is a multi-tenant service, and it relies on the `HOST` header to resolve to the correct endpoint. For example, when [configuring Application Gateway](./signalr-howto-work-with-app-gateway.md#create-an-application-gateway-instance) for Azure SignalR, select **Yes** for the option *Override with new host name*.
2222

2323
* When your client goes through your reverse proxy to Azure SignalR, set `ClientEndpoint` as your reverse proxy URL. When your client *negotiate*s with your hub server, the hub server will return the URL defined in `ClientEndpoint` for your client to connect. [Check here for more details.](./concept-connection-string.md#client-and-server-endpoints)
2424

@@ -39,6 +39,14 @@ There are several general practices to follow when using a reverse proxy in fron
3939
})
4040
```
4141

42+
* When a client goes through your reverse proxy to Azure SignalR, there are two types of requests:
43+
1. HTTP post request to `<reverse-proxy-URL>/client/negotiate`, which we call as **negotiate request**
44+
2. WebSocket/SSE/LongPolling connection request depending on your transport type to `<reverse-proxy-URL>/client`, which we call as **connect request**.
45+
46+
Make sure that your reverse proxy supports both transport types for `/client` subpath. For example, when your transport type is WebSocket, make sure your reverse proxy supports both HTTP and WebSocket for `/client` subpath.
47+
48+
If you have configured multiple SignalR services behind your reverse proxy, make sure `negotiate` request and `connect` request with the same `asrs_request_id` query parameter(meaning they are for the same connection) are routed to the same SignalR service instance.
49+
4250
* When your server goes through your reverse proxy to Azure SignalR, set `ServerEndpoint` as your reverse proxy URL. Your app server will use the URL defined in `ServerEndpoint` to start the server connections or REST API calls. [Check here for more details.](./concept-connection-string.md#client-and-server-endpoints)
4351

4452
There are two ways to configure `ServerEndpoint`:
@@ -58,18 +66,11 @@ There are several general practices to follow when using a reverse proxy in fron
5866
})
5967
```
6068

61-
* When a client goes through your reverse proxy to Azure SignalR, there are two types of requests:
62-
1. HTTP post request to `<reverse-proxy-URL>/client/negotiate`, which we call as **negotiate request**
63-
2. WebSocket/SSE/LongPolling connection request depending on your transport type to `<reverse-proxy-URL>/client`, which we call as **connect request**.
64-
65-
Make sure that your reverse proxy supports both transport types for `/client` subpath. For example, when your transport type is WebSocket, make sure your reverse proxy supports both HTTP and WebSocket for `/client` subpath.
66-
67-
If you have configured multiple SignalR services behind your reverse proxy, make sure `negotiate` request and `connect` request with the same `asrs_request_id` query parameter(meaning they are for the same connection) are routed to the same SignalR service instance.
6869

6970
* When reverse proxy is used, you can further secure your SignalR service by [disabling public network access](./howto-network-access-control.md) and use [private endpoints](howto-private-endpoints.md) to allow only private access from your reverse proxy to your SignalR service through VNet.
7071

7172
## Next steps
7273

7374
- Learn [how to work with Application Gateway](./signalr-howto-work-with-app-gateway.md).
7475

75-
- Learn more about [the internals of Azure SignalR](./signalr-concept-internals.md).
76+
- Learn more about [the internals of Azure SignalR](./signalr-concept-internals.md).

0 commit comments

Comments
 (0)