负载均衡

nginx+tomcat 负载均衡

雨燕双飞 提交于 2019-12-03 13:58:01
第一篇nginx for windows 安装: https://www.cnblogs.com/blogxiao/p/8761734.html 第二篇: tomcat 的部署: 1.nginx可以作为反向代理服务器,作为客户端发送请求的门户,这个门户将接受的请求分均衡发给多个应用服务器,达到高负载的效果,典型的就比如tomcat应用服务器。 2.解释一下反向代理:正向和反向是针对服务器来说的,服务器发送给客户端的是正向,客户端向服务器发起的是反向。 3.先下载一个tomcat,然后拷贝成两份 4.在eclipse新建一个简单的web项目,将生成的放到tomcat 的webapps 的目录下 5.开始配置tomcat ,tomcat 最主要的就是端口号 和 项目根路径,配置tomcat 的server 文件,文件的路径tomcat1->conf->server.xml tomcat1端口号配置 <Server port="8006" shutdown="SHUTDOWN"> <Connector connectionTimeout="20000" port="8090" protocol="HTTP/1.1" redirectPort="8443"/> <Connector port="8001" protocol="AJP/1.3" redirectPort="8443"/>

nginx upstream 容错机制

给你一囗甜甜゛ 提交于 2019-12-03 11:54:11
1. 摘要 (1) 结论 详细描述了nginx记录失效节点的6种状态(time out、connect refuse、500、502、503、504,后四项5XX需要配置proxy_next_upstream中的状态才可以生效)、失效节点的触发条件和节点的恢复条件、所有节点失效后nginx会进行恢复并进行重新监听。 (2) Nginx 负载均衡方式介绍 Nginx的负载均衡方式一共有4种:rr(轮询模式)、ip_hash、fair、url_hash。 (3) Ngxin负载均衡和相关反向代理配置内容 Nginx负载均衡和与容错相关的反向代理的配置。 (4) 获取后端流程 后端server的自动容错流程图。 (5) 测试环境和测试结果 针对几种错误方式进行自动容错测试。 2. 结论 (1) nginx 判断节点失效状态 Nginx 默认判断失败节点状态以connect refuse和time out状态为准,不以HTTP错误状态进行判断失败,因为HTTP只要能返回状态说明该节点还可以正常连接,所以nginx判断其还是存活状态;除非添加了proxy_next_upstream指令设置对404、502、503、504、500和time out等错误进行转到备机处理,在next_upstream过程中,会对fails进行累加,如果备用机处理还是错误则直接返回错误信息

linux之集群LVS

雨燕双飞 提交于 2019-12-03 11:43:29
负载均衡集群:LVS   haproxy 高可用集:keepalived   RHCS(主要用于金融机构) 一、LVS配置负载均衡集群 两种模式: 1、LVS/NAT模式负载均衡集群 2、LVS/DR模式负载均衡集群 三种工作模式 1、NAT网络地址转换模式,运用的时NAT地址转换 2、TUN模式:隧道模式,工作中不常用 3、DR模式:路由模式,不用做地址转换 1、配置LVS/NAT模式负载均衡集群 LVS服务器对客户端访问应用服务器时,对客户端到应用服务器的链接进行负载均衡,确保 应用服务器按照LVS算法进行负载分配,例如:用轮询的方式,这样应用服务器平均分配来自 客户端的访问压力 搭建步骤 LVS集群服务器配置 1、开启内核路由转发功能,使其能够收发来自不同网段的IP包 [root@LVS ~]# vim /etc/sysctl.conf net.ipv4.ip_forward=1------------------------------------新加内容。开启内核的路由IP包转发功能 [root@LVS ~]# sysctl -p----------------------------------查看是否配置成功 net.ipv4.ip_forward = 1 配置LVS服务(NAT模式) 安装软件包 [root@LVS ~]# yum -y install

LVS负载均衡

心不动则不痛 提交于 2019-12-03 11:33:44
一、lvs-nat模式 1.1、环境介绍   本实验用三台虚拟机完成,一台虚拟机模拟lvs调度器,两块网卡,一块模拟公网一块模拟私网,公网地址192.168.0.201/24,私网地址192.168.4.130/24,另外两台虚拟机分别模拟一台后端web服务器。IP地址分别为192.168.4.128/24,192.168.4.129/24,两台web服务器通过私网地址和调度服务器连接,此例一权重轮训方式为例。通过访问192.168.0.201达到轮训两台web服务器。如果两台web服务器的资源是一样的就可以达到web服务器的负载均衡。 1.2、环境准备   两台web服务器起web服务,配置默认首页,首页内容分别为两者的IP地址。这里不详细介绍。   配置三台服务器的IP地址。   配置命令:   lvs服务器:   1 nmcli connection modi ens34 ipv4.method manual ipv4.addresses 192.168.4.130/24 ipv4.gateway 192.168.4.2 ipv4.dns 114.114.114.114 connection.autoconnect yes 2 nmcli connection up ens34 3 nmcli connection modi ens33 ipv4.method manual

LVS+Keepalived

∥☆過路亽.° 提交于 2019-12-03 10:54:30
LVS+Keepalived 一,* *简介** 1,* *负载均衡的类型** l 负载均衡可以采用硬件设备(例如常常听见的 F5),也可以采用软件负载 l 商用硬件负载设备成本通常较高(一台几十万甚至上百万),所以一般 情况下会采用软件负载 l 软件负载解决的两个核心问题是:选谁、转发,其中最著名的是 lvs 2,* *LVS介绍** 2.1 LVS是什么? l 英文全称是 Linux Virtual Server,即 Linux 虚拟服务器 l 由 章 文 嵩 博 士 发 起 的 自 由 软 件 项 目 , 它 的 官 方 站 点 是 www.linuxvirtualserver.org l Linux2.4 内核以后,LVS 已经是 Linux 标准内核的一部分 l 可以将请求分发给后端真实服务器处理 l 有许多比较著名网站和组织都在使用 LVS 架设的集群系统,例如:Linux 的门 户网站( www.linux.com )、向 RealPlayer 提供音频视频服务而闻 名的 Real 公 司( www.real.com )、全球最大的开源网站 (sourceforge.net)等 l 提供了多种调度算法 1) 轮询调度(Round-Robin Scheduling)RR算法 2) 加权轮询调度(Weighted Round-Robin Scheduling)WRR算法

Nginx基础知识点总结

谁说我不能喝 提交于 2019-12-03 09:57:06
1.什么是Nginx?   Nginx是一个高性能的HTTP和反向代理服务器,常用于做负载均衡服务器 2.为什么要用Nginx? 跨平台、配置简单 非阻塞、高并发连接: 处理2-3万并发连接数,官方监测能支持5万并发 内存消耗小: 开启10个nginx才占150M内存,Nginx采取了分阶段资源分配技术 nginx处理静态文件好,耗费内存少 内置的健康检查功能: 如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上。 节省宽带: 支持GZIP压缩,可以添加浏览器本地缓存 稳定性高: 宕机的概率非常小 master/worker结构: 一个master进程,生成一个或者多个worker进程 接收用户请求是异步的: 浏览器将请求发送到nginx服务器,它先将用户请求全部接收下来,再一次性发送给后端web服务器,极大减轻了web服务器的压力,一边接收web服务器的返回数据,一边发送给浏览器客户端 网络依赖性比较低,只要ping通就可以负载均衡 可以有多台nginx服务器 3.为什么Nginx性能这么高? 得益于它的事件处理机制: 异步非阻塞事件处理机制:运用了epoll模型,提供了一个队列,排队解决 4、为什么不使用多线程? Apache Tomcat: 创建多个进程或线程,而每个进程或线程都会为其分配cpu和内存

rabbitMQ和kafka的区别

别说谁变了你拦得住时间么 提交于 2019-12-03 07:44:30
首先,rabbitMQ是一款开源,ERlang编写的,基于AMQP协议的,消息中间件; 它可以做到:解耦、异步、削疯限流; 挂机可能造成稳定性问题;加入系统的复杂性; 如何保证rabbitMQ的高可用,搭建集群; 如何做到重复消费:确保消息唯一性,做唯一标识; 然后,kafka是apache一款分布式发布订阅消息系统。 它能做到缓冲和削峰、解耦、冗余。 区别: 从消息确认来说 rabbitMQ以brocker代理为中心,有消息确认机制; kfka:以consumer为中心,没有消息确认机制。 从批量处理来说 rabbitMQ支持事务,不支持批量操作,吞吐量小 Kafka:内部消息是可以做批量处理,消息处理效率高,吞吐量高 从负载均衡来说 rabbitMQ不支持负载均衡,需要loadbalance支持 kafka的采用zK来协调负载均衡问题,zk通过轮询的方式发送消息到brocker上; 来源: https://www.cnblogs.com/zym627270054/p/11783648.html

Nginx负载均衡+tomcat+session共享

柔情痞子 提交于 2019-12-03 07:06:01
本文,是笔者工作之余写的,第一是把之前打系统框架的步骤记录下来。第二是将这个过程,谈不上经验,奉献给正在撘这种框架遇到各种bug,各种问题的人们。 看这个之前首先你需要已经用nginx+tomcat+session共享打过框架,但是没有成功,遇到种种问题。即可参考此文。文章比较简洁,但全是精华。 对了,本文是基于windows平台下的。 好了,言归正传! —————————————————————————————————————————————————— 下载 Nginx ;下载地址: http://nginx.org/ 下载 tomcat ;下载地址: http://tomcat.apache.org/download-60.cgi 下载 memcached-win32 下载一扒拉 Session 共享所用的 jar 包 Nginx 下载解压之后得到这样的列表: 配置 nginx.conf ;新增 proxy.conf 和 gzip.conf Nginx.conf #Nginx所用用户和组,window下不指定 #user niumd niumd; #工作的子进程数量(通常等于CPU数量或者2倍于CPU) worker_processes 4; #错误日志存放路径 error_log logs/error.log info; #指定pid存放文件 pid logs/nginx

nginx+tomcat:负载均衡配置(使用粘性session)

末鹿安然 提交于 2019-12-03 07:05:48
(1) 举个简单的例子,以tomcat为例,我们都知道session存在于服务器端,对于 不是分布式部署 ,整个系统的session都会是这 唯一的服务器 来管理。这点 没问题。但是 对于分布式部署 来说,假设有tomcatA与tomcatB,但用户user访问系统时,通过负载均衡,此user访问了位于tomcatA上的应用。系统给此用户分配了一个session来标识用户身份,并返回sessionID给浏览器。这时user又向服务器发送个请求。假设这时候负载均衡到了tomcatB,但是此时tomcatB上并没有存有user相应的session信息。根据一般应用的设置,会提示user重新登录,试想下user就这样一直登录,一直被提示未登录,这样肯定行不通。这就是session保持的问题。 解决session保持有几种方法,例如nginx自带的ip_hash模块,session复制,以及使用类似redis这种缓存数据库来实现对session的统一管理。在这里介绍的是粘性session; (2) 粘性session的概念: 用户在持续访问系统时,根据粘性session,仍会被分配到上一次访问的服务器中。 (3)粘性session的配置: 1.给nginx添加 nginx_upstream_jvm_route 模块 下载: http://down.51cto.com/data/910451

Nginx负载均衡

六月ゝ 毕业季﹏ 提交于 2019-12-03 05:03:49
上面VM克隆一台一台主机 lb01 lb02 LNMP01 LNMP02 yum官方源安装方法: 第一个历程: 更新nginx官方yum源 vim /etc/yum.repos.d/nginx.repo [nginx-stable] name=nginx stable repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key 第二个历程: yum安装nginx软件 yum install -y nginx 第三个历程: 启动nginx服务,检查服务是否安装正确 systemctl start nginx systemctl enable nginx 测试访问nginx服务 来源: https://www.cnblogs.com/linux985/p/11779124.html