|
|
51CTO旗下网站
|
|
移动端

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

在互联网项目中,往往面临着高用户量、高并发的问题,造成服务器的压力非常大,特别是电商项目,以淘宝天猫为例,近年双十一的成交量屡创新高,可想而知淘宝天猫的服务器面临的并发量有多大,单一服务器肯定承受不住。

作者:快乐逍遥侠来源:今日头条|2019-07-02 08:38

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

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

一、反向代理

1.1什么是反向代理

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

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

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

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

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

1.2反向代理的配置

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

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

  1. upstream tomcat-portal { 
  2. server xxx(你的tomcat安装的服务器的ip):8080; 
  3. server { 
  4. listen 80; 
  5. server_name xxxx(你项目访问的域名); 
  6. location / { 
  7. proxy_pass http://tomcat-portal; 
  8. 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配置文件:

  1. upstream tomcat-portal { 
  2. server Tomcat1的ip:8080; 
  3. server Tomcat2的ip:8080; 
  4. server Tomcat3的ip:8080; 
  5. server { 
  6. listen 80; 
  7. server_name xxxx(你项目访问的域名); 
  8. location / { 
  9. proxy_pass http://tomcat-portal; 
  10. index index.html; 

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

三、高可用性

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

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

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

【编辑推荐】

  1. Nginx代理与反向代理、负载均衡实践
  2. 最简配置!3 步完成Nginx+tomcat负载均衡的会话保持
  3. Nginx的作用详解,为什么在Web服务器中Nginx的比例越来越高?
  4. 深入浅出反向代理服务器“Nginx”
  5. What?Tomcat-竟然也算中间件?
【责任编辑:武晓燕 TEL:(010)68476606】


点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

462人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

Spring Boot 爬虫搜索轻松游

Spring Boot 爬虫搜索轻松游

全栈式开发之旅
共4章 | 美码师

97人订阅学习

读 书 +更多

JSP应用开发详解(第二版)

本书结合JSP和Servlet的最新规范,从基本的语法和规范入手,以经验为后盾,以实用为目标,以实例为导向,以实践为指导,深入浅出地讲解了JS...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客