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

栏目: Java · 发布时间: 5年前

内容简介:在互联网项目中,往往面临着高用户量、高并发的问题,造成服务器的压力非常大,特别是电商项目,以淘宝天猫为例,近年双十一的成交量屡创新高,可想而知淘宝天猫的服务器面临的并发量有多大,单一服务器肯定承受不住。这些互联网项目的服务器一般都是采用集群部署的方式,实现负载均衡。开始搭建之前,我们先来了解其中涉及到比较重要的一些概念。

在互联网项目中,往往面临着高用户量、高并发的问题,造成服务器的压力非常大,特别是电商项目,以淘宝天猫为例,近年双十一的成交量屡创新高,可想而知淘宝天猫的服务器面临的并发量有多大,单一服务器肯定承受不住。这些互联网项目的服务器一般都是采用集群部署的方式,实现负载均衡。

开始搭建之前,我们先来了解其中涉及到比较重要的一些概念。

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

一、反向代理

1.1什么是反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

简单来说就是正向代理是针对你的客户端,如下图:

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

反向代理是针对服务器,如下图:

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

1.2反向代理的配置

这里使用nginx作为反向代理服务器。

(1)在nginx主机修改nginx配置文件

upstream tomcat-portal { 
server xxx(你的tomcat安装的服务器的ip):8080; 
} 
server { 
listen 80; 
server_name xxxx(你项目访问的域名); 
location / { 
proxy_pass http://tomcat-portal; 
index index.html; 
} 

二、负载均衡

2.1什么是负载均衡

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

使用nginx+tomcat实现的负载均衡,Nginx作为负载均衡器,web发起额所有请求都到Nginx,Nginx再将请求转发到Tomcat服务器,示意图如下:

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

2.2负载均衡的配置

在3台服务器上分别安装Tomcat,在Nginx的配置文件中分别指向这3台服务器的ip+Tomcat端口。

修改 Nginx配置文件:

upstream tomcat-portal { 
server Tomcat1的ip:8080; 
server Tomcat2的ip:8080; 
server Tomcat3的ip:8080; 
} 
server { 
listen 80; 
server_name xxxx(你项目访问的域名); 
location / { 
proxy_pass http://tomcat-portal; 
index index.html; 
} 
} 

通过以上配置,访问项目时,3台服务器将会共同分担系统访问的压力。

三、高可用性

上面已经 说到Nginx作为负载均衡器,所有请求都先到Nginx,假如Nginx服务器宕机,那么后面的web服务器将无法提供服务。为了防止出现这种情况,需要建立一个备份机,主机和备份机都运行高可用(High Availability)监控程序,当主机宕机,备份机提供服务,主机好了之后,备份机释放服务ip,主机再次提供服务。

keepalived 就是一款集群管理中保证集群高可用的一个软件,用来防止单点故障。Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的 web 服务器。

在Nginx的主机和备份机上都安装keepalived软件。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Single Page Web Applications

Single Page Web Applications

Michael Mikowski、Josh Powell / Manning Publications / 2013-9-30 / USD 44.99

Code for most web sites mostly runs on the server. When a user clicks on a link, the site reacts slowly because the browser sends information to the server and the server sends it back again before di......一起来看看 《Single Page Web Applications》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具