当前位置: 首页 > 科技观察

使用Nginx+Tomcat+Keepalived搭建高性能高可用的负载均衡集群

时间:2023-03-13 15:48:20 科技观察

在互联网项目中,经常面临高用户量、高并发的问题,给服务器造成很大的压力,尤其是对于电子商务项目。以猫猫为例。近年来,双十一交易额屡创新高。可想而知,淘宝和天猫的服务器面临着大并发量,单台服务器肯定承受不了。这些互联网项目的服务器一般都采用集群部署的方式来实现负载均衡。在我们开始构建之前,让我们了解一些涉及的更重要的概念。一、反向代理1.1什么是反向代理?结果返回给互联网上请求连接的客户端,此时代理服务器对外充当反向代理服务器。简单的说,正向代理是针对你的客户端,如下图:反向代理是针对服务端,如下图:1.2反向代理配置这里使用nginx作为反向代理服务器。(1)修改nginx配置文件upstreamtomcat-portal{serverxxx(你tomcat安装服务器的ip):8080;}server{listen80;server_namexxxx(你项目访问的域名);location/{proxy_passhttp://tomcat)nginx主机上-portal;indexindex.html;}2.负载均衡2.1什么是负载均衡负载均衡是建立在现有网络结构之上的,它提供了一种廉价、有效、透明的方法来扩展网络设备和服务器的带宽,增加吞吐量,加强网络数据处理能力,提高网络灵活性和可用性。英文名称为LoadBalance,意思是分配给多个运行单元执行,如Web服务器、FTP服务器、企业关键应用服务器等关键任务服务器,共同完成工作任务。使用nginx+tomcat实现负载均衡。Nginx用作负载均衡器。所有的网络请求都发送给Nginx,Nginx将请求转发给Tomcat服务器。示意图如下:2.2负载均衡配置在三台服务器上安装Tomcat,在Nginx配置文件中,指向这三台服务器的ip+Tomcat端口。修改Nginx配置文件:upstreamtomcat-portal{serverTomcat1的ip:8080;serverTomcat2的ip:8080;serverTomcat3的ip:8080;}server{listen80;server_namexxxx(你的项目访问的域名);location/{proxy_passhttp://tomcat-portal;indexindex.html;}}通过上面的配置,在访问项目时,三台服务器分担系统访问的压力。3.高可用上面说了Nginx作为负载均衡器,所有的请求都先到Nginx。如果Nginx服务器宕机,后续的web服务器将无法提供服务。为了防止这种情况发生,需要建立备份机。主机和备份机都运行高可用性(HighAvailability)监控程序。当宿主机宕机时,备份机提供服务。再次服务。keepalived是集群管理中保证集群高可用防止单点故障的软件。Keepalived的作用是检测web服务器的状态。如果Web服务器崩溃或无法工作,Keepalived将检测到它并从系统中删除有故障的Web服务器。当web服务器正常工作时,keepalived会自动重置web服务器加入服务器组,所有这些工作都是自动完成的,无需人工干预。所有需要手动完成的就是修复有故障的Web服务器。在Nginx主机和备机上都安装keepalived软件。