单台服务器受限于硬件资源,其性能是有上限的,当单台服务器不能满足应用场景的并发需求量时,就需要考虑部署多个服务器共同处理客户端的并发请求,但是客户端怎么知道去连接具体哪台服务器呢?
此时就需要一台负载均衡器,通过预设的负载算法,指导客户端连接服务器。 负载均衡器有基于客户端的负载均衡和服务器的负载均衡。 普通的基于哈希的负载算法,并不能满足负载均衡所要求的单调性和平衡性,但一致性哈希算法非常好的保持了这两种特性,所以经常用在需要设计负载算法的应用场景当中。
具体的负载均衡器的设计和一致性哈希算法在课堂上进行详细讲解。 nginx配置tcp负载均衡在服务器快速集群环境搭建中,都迫切需要一个能拿来即用的负载均衡器,nginx在1.9版本之前,只支持http协议web服务器的负载均衡,从1.9版本开始以后,nginx开始支持tcp的长连接负载均衡,但是nginx默认并没有编译tcp负载均衡模块,编写它时,需要加入–with-stream参数来激活这个模块。
nginx编译加入–with-stream参数激活tcp负载均衡模块nginx编译安装需要先安装pcre、openssl、zlib等库,也可以直接编译执行下面的configure命令,根据错误提示信息,安装相应缺少的库。 下面的make命令会向系统路径拷贝文件,需要在root用户下执行 tony@tony-virtual-machine:~/package/nginx-1.12.2# ./configure --with-stream tony@tony-virtual-machine:~/package/nginx-1.12.2# make && make install 编译完成后,默认安装在了/usr/local/nginx目录。 tony@tony-virtual-machine:~/package/nginx-1.12.2$ cd /usr/local/nginx/ tony@tony-virtual-machine:/usr/local/nginx$ ls conf html logs sbin 可执行文件在sbin目录里面,配置文件在conf目录里面。
nginx -s reload 重新加载配置文件启动 nginx -s stop 停止nginx服务 nginx配置tcp负载均衡 主要在conf目录里面配置nginx.conf文件,配置如下: 配置完成后,./nginx -s reload平滑重启。
主要在conf目录里面配置nginx.conf文件,配置如下
hash $remote_addr consistent:基于hash的负载均衡,需要单独安装插件
proxy_timeout : 连接N秒后断开 proxy_connect_timeout:连接超过N秒就断开
配置完成后,./nginx -s reload平滑重启。
|