您的位置:首页 > 房产 > 建筑 > [集群聊天服务器]----(十)Nginx的tcp负载均衡配置--附带截图

[集群聊天服务器]----(十)Nginx的tcp负载均衡配置--附带截图

2025/5/4 14:23:53 来源:https://blog.csdn.net/m0_73537205/article/details/139022437  浏览:    关键词:[集群聊天服务器]----(十)Nginx的tcp负载均衡配置--附带截图

接着上文,我们剖析了服务端和客户端的代码,但是单台服务器的并发量是有限的,面对并发量的要求,我们就需要引入Nginx来实现并发量的要求,将用户请求分发到不同的服务器上分担压力,这就是负载均衡。
在这里插入图片描述

选择负载均衡模块要完成的任务:

  1. 把client的请求按照轮询的负载算法分发到具体的业务服务器ChatServer上;
  2. 需要和ChantServer保持心跳机制,及时检测ChatServer故障,避免分发到故障机上;
  3. 需要及时发现新添加的ChatServer设备,方便扩展服务器数量,不需要停止服务端

在Linux系统下安装配置nginx—附带每一步截图,在Linux系统下安装配置nginx—附带每一步截图中我们讲解了下载Nginx的详细步骤,这里我们来看如何对Nginx的tcp负载均衡配置。

配置步骤

  • 首先,一定要在nginx编译加入--with-stream参数激活tcp负载均衡模块,即./configure --with-stream
  • 可执行文件在sbin目录中,配置文件在conf
    在这里插入图片描述
  • 打开配置文件 vim nginx.conf
  • 在events和http之间插入以下信息(http是外部服务器的负载均衡)
#nginx tcp loadbalance config
stream{upstream MyServer{server 127.0.0.1:6000 weight=1 max_fails=3 fail_timeout=30s;server 127.0.0.1:6002 weight=1 max_fails=3 fail_timeout=30s;}server{proxy_connect_timeout 1s;#proxy_timeout 3s;listen 8000;  #nginx监听的端口号proxy_pass MyServer;tcp_nodelay on;}
}
  1. upstream MyServer为负载均衡模块,里面存放包含的机器,如果要添加新的服务器,只需要在里面添加即可
  2. 127.0.0.1:6000 ip和端口号
  3. weght权重,都为1表示轮询,可以把不同配置的服务器放在集群中,改变他的权重,充分利用它。
  4. max_fails=3 fail_timeout=30s;心跳检测
  • ./nginx -s reload 平滑重启
  • 查看netstat -tnap
    在这里插入图片描述
    注意:如果要停止nginx,不要使用kill杀死进程,因为nginx有进程容错机制,会自动重启。需要使用nginx -s stop

使用

  • 在使用的时候,服务器端 使用MyServer配置的两个端口登录
    在这里插入图片描述
    在这里插入图片描述
  • 客户端直接连 l 8000; 即nginx监听的端口号
    在这里插入图片描述
    在这里插入图片描述
  • 会平均分配给两个服务器(轮询算法)
    在这里插入图片描述
    在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com