SignalR负载均衡配置要点

 

SignalR负载均衡配置要点:

 

1、使用 Redis 的 SignalR 横向扩展

1)从Nuget添加SignalR. StackExchangeRedis包到项目中

2)将以下代码添加到 Startup.cs 以配置底板:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        // Any connection or hub wire up and configuration should go here
        GlobalHost.DependencyResolver.UseStackExchangeRedis("server", port, "password", "AppName");
        app.MapSignalR();
    }
}  

说明:

- "服务器" 是运行 Redis 的服务器的名称。
- 端口号 是运行 Redis 的服务器的端口号。
- "密码" 是在 redis 文件中定义的密码。
- "AppName" 是任意字符串。 SignalR 创建具有此名称的 Redis pub/sub 通道。

如:

GlobalHost.DependencyResolver.UseStackExchangeRedis("redis-server.cloudapp.net", 6379,
    "MyStrongPassword1234", "ChatApp");

  

2、在nginx中配置反向代理服务器信息:

 

http {
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

    upstream websocket {
        server 192.168.100.10:8010;
        server 192.168.100.10:8011;
        ip_hash;
    }

    server {
        listen 8020;
        location / {
            proxy_pass http://websocket;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
    }
}

  

 https://docs.microsoft.com/zh-cn/aspnet/signalr/overview/performance/scaleout-with-redis

 

posted @ 2020-04-13 11:28  microsoft_xin  阅读(591)  评论(0编辑  收藏  举报