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

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

一、反向代理

1.1什么是反向代理

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

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

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

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服务器,示意图如下:

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软件。

nginx集群_使用Nginx+Tomcat+keepalived 搭建高性能高可用性负载均衡集群相关推荐

  1. Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群

    一.前言 前两节分别介绍了 Linux 的高可用集群和负载均衡集群,也可以将这两者相结合,即 Keepalived+LVS 组成的高可用负载均衡集群,Keepalived 加入到 LVS 中的原因有以 ...

  2. IPVS-DR+keepalived实现高可用负载均衡集群

    IPVS-DR+keepalived高可用负载均衡集群方案前端的负载调度器采用双机热备方式,Keepalived主要用来监测RealServer的健康状态以及主负载均衡器和备份负载均衡器之间的故障转移 ...

  3. nginx+keepalived 高可用兼负载均衡集群

    Nginx是一个高性能的web服务器,同时也是一个优秀的反向代理服务器,本文利用两台Dell R720 构建一个高可用兼负载均衡的Linux web集群. 原理 通过nginx分别搭建两个web服务器 ...

  4. 虚拟ip mysql负载均衡_微服务管理平台nacos虚拟ip负载均衡集群模式搭建

    一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...

  5. haproxy keepalived_详解mycat+haproxy+keepalived搭建高可用负载均衡mysql集群

    概述 目前业界对数据库性能优化普遍采用集群方式,而oracle集群软硬件投入昂贵,mysql则比较推荐用mycat去搭建数据库集群,下面介绍一下怎么用mycat+haproxy+keepalived搭 ...

  6. 使用LVS和Keepalived搭建高可用负载均衡服务器集群

    目录 1.什么是LVS和Keepalived 2.负载均衡服务器集群示例环境搭建及安装配置 2.1.环境网络拓扑结构 2.2.安装ipvsadm软件 2.3.安装keepalived 2.4.配置网络 ...

  7. linux 跨物理 集群,linux学习之使用keepalived结合lvs搭建高可用负载均衡集群

    环境如下: 192.168.2.199 vm1.example.com HA主服务器 192.168.2.202vm2.example.com HA备服务器 192.168.2.205vm3.exam ...

  8. keepalived+lvs搭建高可用负载均衡集群

    keepalived与DR模式 主keepalived(调度器):192.168.188.128 真实服务器rs1:192.168.188.129 真实服务器rs1:192.168.188.127 V ...

  9. Nginx+Tomcat搭建高性能负载均衡集群的实现方法

    一.    目标实现高性能负载均衡的Tomcat集群: 二.步骤 1.首先下载Nginx,要下载稳定版: 2.然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apac ...

最新文章

  1. SpringBoot (六) :SpringBoot定时器实现(简单入门)
  2. 【2021-12-06】爬取关键词图片 - 去掉重复图片
  3. php获取目录文件 排序输出,php实现对文件夹目录中的文件进行排序的方法
  4. 【jquery】一款不错的音频播放器——Amazing Audio Player
  5. 2016/08/24 CppCon 2015 Bjarne Stroustrup “Writing Good C++14
  6. 怎么去掉Xcode工程中的某种类型的警告
  7. scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
  8. [转][HTML]css属性
  9. 服务器芯片镜像测试,模拟镜像服务器磁盘问题的两个测试【转】
  10. Cubieboard安装Debian在Nand中
  11. Canal Mysql binlog 同步至 Hbase ES
  12. 1.08 亿条投注信息遭泄露,Elasticsearch 是祸因?!
  13. rhel6上使用udev配置oracle asm,在RHEL6上用UDEV配置ASM
  14. 开源之旅——应用服务器篇
  15. Asp.Net Core 入门(八)—— Taghelper
  16. 示波器的实时采样和等效采样
  17. Java基础 - 替罪羊树(Scapegoat Tree)
  18. 学生用计算机的感叹号在哪,感叹号怎么打电脑(感叹号的用法及举例)
  19. matlab contour3函数,matlab 等值线函数 contour
  20. JAVA——勾股定理

热门文章

  1. python几种括号表示的类型
  2. Python面试题总结(8)--操作类
  3. 对象入参指定泛型类型_为什么要使用泛型,而不是直接将类型作为参数传递?
  4. C++ Vector 汇总
  5. 剑指offer:二叉树中和为某一值的路径
  6. 数据结构探险——树篇
  7. MYSQL存储磁盘创建vgcreate_【转】parted创建硬盘分区并创建LVM
  8. SpringBoot在自定义类中调用service层等Spring其他层
  9. 打CALL APP 项目进展 总体计划
  10. hihoCoder #1143 : 骨牌覆盖问题·一