SignalR负载均衡配置要点

Posted microsoft-xin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于SignalR负载均衡配置要点的主要内容,如果未能解决你的问题,请参考以下文章

signalR的集群与负载均衡

SignalR集群采用Nginx进行负载均衡后连接失败

Azure 上的 SignalR 连接与负载均衡器

Linux下Nginx+Tomcat负载均衡和动静分离配置要点

nginx如何做到TCP的负载均衡

双活数据中心建设要点