nginx负载均衡配置

什么是客户端负载均衡

▼魔方 西西 提交于 2020-02-29 05:42:05
我们之前有一篇文章详述了如何使用nginx实现负载均衡( Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享 ),在这篇文章中,我们实现了如何将客户端发来的请求通过Nginx负载均衡服务器发送到不同的上游服务器去处理,这种负载均衡就是一种典型的服务端负载均衡,那么客户端负载均衡是什么?它和服务端负载均衡有什么区别? 本文是Spring Cloud系列的第五篇文章,了解前四篇文章的内容有助于更好的理解本文: 1. 使用Spring Cloud搭建服务注册中心 2. 使用Spring Cloud搭建高可用服务注册中心 3. Spring Cloud中服务的发现与消费 4. Eureka中的核心概念 服务端负载均衡 负载均衡是我们处理高并发、缓解网络压力和进行服务端扩容的重要手段之一,但是一般情况下我们所说的负载均衡通常都是指服务端负载均衡,服务端负载均衡又分为两种,一种是硬件负载均衡,还有一种是软件负载均衡。 硬件负载均衡主要通过在服务器节点之间安装专门用于负载均衡的设备,常见的如F5。 软件负载均衡则主要是在服务器上安装一些具有负载均衡功能的软件来完成请求分发进而实现负载均衡,常见的就是Nginx。 无论是硬件负载均衡还是软件负载均衡,它的工作原理都不外乎下面这张图: 无论是硬件负载均衡还是软件负载均衡都会维护一个可用的服务端清单

架构设计:负载均衡层设计方案(1)——负载场景和解决方式

爷,独闯天下 提交于 2020-02-29 05:38:17
转自:https://blog.csdn.net/yinwenjie/article/details/46605451 在上一篇《标准Web系统的架构分层》文章中,我们概述了WEB系统架构中的分层架设体系,介绍了包括负载均衡层、业务层、业务通信层、数据存储层的作用和存在意义。从本片文章开始,我们将首先详细讲解负载均衡层的架构原理和选型场景。 1、不同的负载场景 我们知道负载均衡层的作用是“将来源于外部的处理压力通过某种规律/手段分摊到内部各个处理节点上”,那么不同的业务场景需要的负载均衡方式又是不一样的,架构师还要考虑架构方案的成本、可扩展性、运维难易度等问题。下面我们先介绍几种典型的不同业务场景,大家也可以先想一下如果是您,会怎么架设这些场景的负载均衡层。 需要注意的是,这个系统的文章,我们都将使用这几个典型的业务场景来讲解系统架构的设计递归设计。在后续几篇介绍负载层架构的文章中,我们也将通过这几个典型的业务场景讲解负载层的架构方案。 1.1、负载场景一 这是一个国家级物流园区的货运订单和物流管理系统。在物流园区内的货运代理商、合作司机(货运车辆)、园区管理员和客服人员都要使用这套系统。每日RUV在1万人次,日PV在10万左右。甲方总经理使用这套系统的原有是抱着“试一下移动互联网对物流产品是否能起到提高效率的作用”。可以看出整个系统基本上没有访问压力

LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法)

孤者浪人 提交于 2020-02-28 23:37:16
-------------------LVS专题------------------------ LVS原理详解及部署之一:ARP原理准备 LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法) LVS原理详解及部署之三:手动部署LVS LVS原理详解及部署之四:keepalived介绍 LVS原理详解及部署之五:LVS+keepalived实现负载均衡&高可用 ------------------------------------------------- 一、集群简介 什么是集群 计算机集群 简称 集群 是一种 计算机系统 ,它通过一组松散集成的 计算机软件 和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。 集群系统 中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。 集群计算机 通常用来改进单个计算机的计算速度和/或可靠性。一般情况下 集群计算机 比单个计算机,比如工作站或 超级计算机 性能价格比要高得多。 集群就是一组独立的计算机,通过网络连接组合成一个组合来共同完一个任务 LVS在企业架构中的位置: 以上的架构只是众多企业里面的一种而已。绿色的线就是用户访问请求的数据流向。用户-->LVS负载均衡服务器--->apahce服务器--->mysql服务器&memcache服务器&共享存储服务器

nginx 基础 4 负载均衡

百般思念 提交于 2020-02-28 11:07:04
1.配置 http 段配置 upstream jing { server 192.168.0.25:80 max_fails=3 fail_timeout=20s weight=1; server 192.168.0.28:80 max_fails=3 fail_timeout=20s weight=2; #后面参数表示如果,连续请求3次失败,停机20s,不接受请求 } #表示创建一个虚拟web组,name "jing" server 段 location / { proxy_pass http://jing/; } #location 匹配到转发给 "jing" 虚拟web组 2. 调度算法 轮询(rr),默认调度算法,将请求平均分配给两个后端主机,假如一个页面10个请求,第一个web主机响应 1 3 5 7 9 第二个主机响应,2 4 6 8 10,注意轮询按请求来负载的。 加权轮询(wrr),和轮询一样就是加了权重,假如web1 "weight=1" ,web2 "weight=2" ,有个页面有9个请求,web1会响应3个,web会响应6个。 ip_hash,每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题 url_hash(第三方)根据用户所请求的url资源路径分配到后端不同的服务器,可以解决后端是缓存服务器提高命中率

Ribbon,负载均衡简介,Ribbon架构,IRULE的7种默认算法

不想你离开。 提交于 2020-02-28 09:54:13
目录 Ribbon简介 负载均衡 Ribbon架构 IRULE的7种默认算法 Ribbon简介 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说, Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。 Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是 在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。 负载均衡 LB,即负载均衡(Load Balance),在微服务或分布式集群中经常用的一种应用。 负载均衡简单的说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA。 常见的负载均衡有软件Nginx,LVS,硬件 F5等。 相应的在中间件,例如:dubbo和SpringCloud中均给我们提供了负载均衡,SpringCloud的负载均衡算法可以自定义。 集中式LB 即在服务的消费方和提供方之间使用独立的LB设施(可以是硬件,如F5, 也可以是软件,如nginx), 由该设施负责把访问请求通过某种策略转发至服务的提供方; 进程内LB 将LB逻辑集成到消费方

负载均衡

ε祈祈猫儿з 提交于 2020-02-28 04:26:40
什么是负载均衡 负载均衡就是将任务按照用户的需求分配到不同的计算机进行处理,大部分情况下并不是均等分配,而是根据服务器的性能等区别,按一定的比例进行分配。 负载均衡的目的是为了分担任务压力,实现高并发,避免单点失效。 常见的负载均衡有软件负载均衡,硬件负载均衡,DNS负载均衡 软件负载均衡 软件负载均衡是指通过软件实现负载均衡,比如LVS(Linux Virtual Server),Nginx。软件负载均衡又分为四层负载均衡和七层负载均衡。 四层负载均衡是指通过网络层的ip地址和传输层的端口进行转发控制,LVS属于四层负载均衡。 七层负载均衡是指通过应用层的http请求头,url等进行负载均衡。Nginx属于可四可七的负载均衡,通常只用来做七层负载。 软件负载均衡成本小,配置简单但安全性低,没有防火墙等。 Nginx Nginx是一个高性能的http和反向代理服务器。为什么说是反向代理,因为正常的代理是多个客户端通过代理访问外部多个服务器,代理服务器代理的是客户端,而反向代理是多个客户端通过代理服务器访问内部多个服务器,此时代理的是服务器端。 Nginx支持万级别的高并发,LVS支持十万级别的高并发。 硬件负载均衡 通过硬件实现负载均衡,比如交换机,常用的硬件设备是F5和A10。具有以下优点: 支持复杂的负载均衡算法 支持百万级别的高并发 安全性能好 DNS负载均衡

负载均衡中间件(二)LVS负载均衡软件和基于云计算平台的架构

孤人 提交于 2020-02-26 11:46:56
一、LVS简介 LVS全称Linux Virtual Server,即Linux虚拟服务器。它是我国章文嵩博士的一个开源项目。在linux内核2.6中,已经成为了内核的一部分,在此之前的内核需要重新编译内核。 主要用于服务器的负载均衡,它工作在网络4层,开源实现高性能,搞可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。它易用,配置简单,且有多种负载均衡方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果。另外扩展性非常好。 针对高伸缩、高可用网络服务的需求,我们给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。 虚拟服务器的体系结构如上图所示,一组服务器通过高速的局域网或地理分布的广域网相互连接,在它们的前端有一个负载均衡调度器(Load Balancer)。负载均衡调度器能无缝地将网络请求调度到真实服务器上,从而使得服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。由于我们的负载调度技术是在linux内核中实现的,我们称之为linux虚拟服务器。 项目目标:使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的伸缩性、可靠性和可管理性。 目前

从运维角度看中大型网站架构的演变之路

半世苍凉 提交于 2020-02-26 04:57:22
前言 一个成熟的网站架构并不是一开始设计就具备高可用、高伸缩、高性能等特性的,它是随着用户量和业务线不断增加,基础架构才逐渐健壮的。在发展初期,一般都是从0到1,不会一上来就整一些大而全的架构,也很少人这么任性。 说明 适用业务:电商/门户/招聘网站 开发语言:PHP和JAVA Web服务:Nginx/Tomcat8 数据库:MySQL 操作系统:CentOS 物理服务器:Dell R730/R430 一、单台服务器部署 项目开发完成上线,用户访问量寥寥无几。 二、WEB与数据库独立部署 有一定用户访问量,单台服务器性能有些吃力,想提高并发能力,增加一台服务器,将HTTP请求与SQL操作负载分散不同服务器。 三、动静分离-初期 什么是动静分离?静态页面与动态页面分离部署。 四、数据库主从与查询缓存 RedisCache 使用Redis缓存数据库查询结果,将热数据放到内存中,提高查询速度,减少数据库请求。 MySQL主从 基于binlog异步复制。 HA MySQL:Keepalived 怎么保证Redis缓存时效性? a) 增加中间件,在主从同步延迟时间内,中间件将SQL读操作还路由到主。 b) 主从同步延迟时间后,再异步发起一次淘汰Cache。 c) 增加消息队列和清理Cache程序,入库同时也写入消息队列,缓存清理程序订阅消息队列,一旦有数据更新,重新Cache。 d)

负载均衡Nginx+KeepAlived

坚强是说给别人听的谎言 提交于 2020-02-26 00:38:09
192.168.1.150 VOIP 虚拟IP 192.168.1.151 CNSHANK01 负载均衡1 192.168.1.152 CNSHANK02 负载均衡2 系统:Centos7.4 一、nginx配置(两台nginx配置一模一样,主页设置不同): 安装: yum -y install nginx 配置: vim /etc/nginx/nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 12800; use epoll; } http { include mime.types; default_type application/octet-stream; limit_conn_zone $binary_remote_addr zone=addr:10m; #防IP*** log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http

nginx---基础介绍

懵懂的女人 提交于 2020-02-25 23:58:52
转自:https://www.cnblogs.com/wcwnina/p/8728391.html Nginx的产生 没有听过Nginx?那么一定听过它的“同行”Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。 然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。这也使得各个WEB服务器有着各自鲜明的特点。 Apache的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多有点:稳定、开源、跨平台等等。但是由于它出现的时间太长了。它兴起的年代,互联网产业远比不上现在。所以它被设计为一个重量级的。不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。 这些都决定了Apache不可能成为高性能WEB服务器,轻量级高并发服务器Nginx就应运而生了。 俄罗斯的工程师Igor Sysoev,他在为Rambler Media工作期间