网络负载均衡

Nginx反向代理与负载均衡

倾然丶 夕夏残阳落幕 提交于 2019-12-01 05:36:28
最近在做需求的时候,有时候会和别的三方系统交互,如调用一个第三方系统的http接口查询商品物流信息,获得响应数据返回给我们自己系统的前端页面进行展示,整个流程会遇到什么样的问题呢,现在整理一下。 代理 大家都知道,我们平时开发,都是在公司的内网(局域网)中,即不能与外网(互联网)交互,也就是不能上网,所以要想使开发机或服务器能够访问外网,就不得不通过代理服务器转发请求了。这里自然而然的就想到了使用Nginx做代理了,那什么是代理呢?我们就先了解一下代理的基本概念吧。 代理一词被我们在生活中所熟知,印象中的“代理”指的是以他人的名义,在授权范围内进行对被代理人直接发生法律效力的法律行为。这是百度百科解释的代理一词的意思。通俗点说就是“代别人处理”,举个生活中常见的例子,你去办车检,需要排队办理,也有很多表格要填,还要等待很久,办下来差不多要一天。有些人嫌麻烦,浪费时间,不愿意干,这个时候“代理车检”这一职业就诞生了。你授权代理人帮你处理一些列繁琐的事情,并支付一定的费用,你只需要关心结果,有没有办成功,其他的你不需要关心。这样,你就从这一事务中脱离出来,交给专业的人去做。代理人执行的这一动作就叫做代理。 同样,回到互联网行业,代理一词同样适用。只不过这里的代理人和被代理人都是计算机,即计算机1要访问A站点,但是计算机1到A站点的网络不通,而计算机2到站点A的网络畅通

负载均衡

白昼怎懂夜的黑 提交于 2019-12-01 05:05:45
1 学习目标 掌握什么是负载均衡及负载均衡的作用和意义。 了解lvs负载均衡的三种模式。 了解lvs-DR负载均衡部署方法。 掌握nginx实现负载均衡的方法。 掌握lvs+nginx负载均衡拓扑结构。 2 负载均衡方案 2.1 什么是负载均衡 一台普通服务器的处理能力是有限的,假如能达到每秒几万个到几十万个请求,但却无法在一秒钟内处理上百万个甚至更多的请求。但若能将多台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求按照某种策略分配到服务器集合的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡解决了大量并发访问服务问题,其目的就是用最少的投资获得接近于大型主机的性能。 2.2 相关技术 2.2.1 基于DNS的负载均衡 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)

Haproxy 简介及配置文件详解

强颜欢笑 提交于 2019-11-30 21:23:27
HAProxy简介 官网:http://www.haproxy.com HAProxy提供高可用性、负载均衡以及基于TCP和HTTP的应用代理,支持虚拟主机,它是免费、快速并且可靠的一种负载均衡解决方案。适合处理高负载站点的七层数据请求。类似的代理服务可以屏蔽内部真实服务器,防止内部服务器遭受攻击。 HAProxy特点和优点: 1.支持原声SSL,同时支持客户端和服务器的SSL. 2.支持IPv6和UNIX套字节(sockets) 3.支持HTTP Keep-Alive 4.支持HTTP/1.1压缩,节省宽带 5.支持优化健康检测机制(SSL、scripted TCP、check agent...) 6.支持7层负载均衡。 7.可靠性和稳定性非常好。 8.并发连接40000-50000个,单位时间处理最大请求20000个,最大数据处理10Gbps. 9.支持8种负载均衡算法,同时支持session保持。 10.支持虚拟主机。 11.支持连接拒绝、全透明代理。 12.拥有服务器状态监控页面。 13.支持ACL. HAProxy为了让同一客户端访问服务器可以保持会话。有三种解决方法:客户端IP、Cookie以及Session 1.HAProxy通过客户端IP进行Hash计算并保存,以此确保当相同IP访问代理服务器可以转发给固定的真实服务器。 2

构建LVS负载均衡集群——NAT模式(最简单方式)

五迷三道 提交于 2019-11-30 18:36:44
一、装备一台lvs调度器主机 要求两个网卡一个为内部局域网ip,一个为公网ip #IP地址设置过程不再重复 [root@localhost ~]# ip a | grep eth0 #内网ip 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 inet 192.168.200.10/24 brd 192.168.200.255 scope global eth0 [root@localhost ~]# ip a | grep eth1 #公网ip 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 inet 192.168.100.1/24 brd 192.168.100.255 scope global eth1 #开启路由功能,以便两个不同网络之间通信 [root@localhost ~]# vim /etc/sysctl.conf net.ipv4.ip_forward = 1 [root@localhost ~]# sysctl -p net.ipv4.ip_forward = 1 安装ipvsadm软件,配置lvs负载均衡

lvs

岁酱吖の 提交于 2019-11-30 12:18:38
lvs 一、负载均衡LVS基本介绍 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网站是 http://www.linuxvirtualserver.org 现在 LVS 已经是 Linux 内核标准的一部分。使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS架构从逻辑上可分为调度层、Server集群层和共享存储。 LVS: 1、抗负载能力强。抗负载能力强、性能高,能达到F5硬件的60%;对内存和cpu资源消耗比较低 2、工作在网络4层,通过vrrp协议转发(仅作分发之用),具体的流量由linux内核处理,因此没有流量的产生。 2、稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived) 3、应用范围比较广,可以对所有应用做负载均衡; 4、不支持正则处理,不能做动静分离。 5、支持负载均衡算法:rr(轮循)、wrr(带权轮循)、lc(最小连接)、wlc(权重最小连接) 6、配置 复杂,对网络依赖比较大,稳定性很高。 Ngnix: 1、工作在网络的7层之上

负载均衡集群(LBC)

只愿长相守 提交于 2019-11-30 06:33:48
一、LVS简介及工作模式 1. LVS简介 Linux Virtual Server,该软件的功能是实现LB(load balance) 2.LVS的三种工作模式 1)NAT模式(NAT) LVS 服务器同时充当一台NAT 网关,拥有公有IP ,同时负责将针对此公共IP的请求依据算法将请求转发给LAN 中的某台真实服务器(node) ,node 处理完成请求后将结果返回至LVS Server(调度器), 在由LVS Server 将结果返回给用户。可以将内部网络隐藏 (VIP虚拟IP,RIP真实IP),适用于小规模(10~20台之间)、访问量较小的网络集群。 2)IP隧道模式(TUN) 可以实现让集群中的节点处于不同网络段 3)直连路由模式(DR) 当参与集群的计算机和作为控制管理的计算机在同一个网段时可以使用此种方法。 控制管理的计算机接收到请求包时直接送到参与集群的node 上。当node 处理完请求后将直接把结果返还至用户而不通过LVS Server 返还。 DR的优势在于速度快、开销少。 二、三种工作模式的使用范围 NAT 方式适用于在同一个LAN中实现小型LB TUN 方式适用于node部分在Internet上 DR 方式使用与在同一个LAN中实现较为大型LB 三、LVS的调度算法 1. 算法 将客户端的请求按照不同的算法转发给web服务器 2.算法的种类 1)rr:轮询

nginx代理与负载均衡

烈酒焚心 提交于 2019-11-30 04:29:00
1.什么是代理 代理就是代为办理 2.nginx正向代理,反向代理 (1)正向代理:是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。这种代理其实在生活中是比较常见的。 (2)反向代理:是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 (3)正向代理与反向代理的区别 区别在于形式上服务的 "对象" 不一样 正向代理代理的对象是客户端,为客户端服务 反向代理代理的对象是服务端,为服务端服务 3.nginx代理支持哪些协议,常用的有哪些? 反向代理模式 nginx反向代理模块 http,websocket,HTTPS ngx_http_proxy_module fastcgi ngx_http_fastcgi_module uwsgi ngx_http_uwsgi_module grpc ngx_http_v2_module 4.nginx反向代理语法 来源: https://www.cnblogs.com/dlq-52/p/11559923.html

zz 远程通信协议

大兔子大兔子 提交于 2019-11-29 21:10:41
https://www.jianshu.com/p/61714f90c061 在分布式架构中,有一个很重要的环节,就是分布式网络中的计算机节点彼此之间需要通信。 HTTP 协议通信原理 说到通信,大家一定听过 tcp 和 udp 这两种通信协议,以及建立连接的握手过程。而 http 协议的通信是基于 tcp/ip 协议之上的一个应用层协议,应用层协议除了 http 还有哪些呢(FTP、DNS、SMTP、Telnet 等)。 涉及到网络协议,我们一定需要知道 OSI 七层网络模型和 TCP/IP 四层概念模型,OSI 七层网络模型包含(应用层、表示层、会话层、传输层、网络层、数据链路层、物理层)、TCP/IP 四层概念模型包含(应用层、传输层、网络层、数据链路层)。 image.png 请求发起过程,在 tcp/ip 四层网络模型中所做的事情 当应用程序用 TCP 传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息) image.png 客户端如何找到目标服务 在客户端发起请求的时候,我们会在数据链路层去组装目标机器的 MAC 地址,目标机器的mac 地址怎么得到呢? 这里就涉及到一个 ARP 协议,这个协议简单来说就是已知目标机器的 ip,需要获得目标机器的 mac 地址。

LVS负载均衡群集详解

北慕城南 提交于 2019-11-29 14:15:09
此博文包含以下内容: 1、 群集类型 2、负载均衡的分层结构 3、负载均衡的工作模式 4、LVS的负载调度算法 5、LVS相关的基础命令 6、使用ipvsadm管理工具 7、搭建NFS共享存储服务器 8、搭建基于NAT模式的LVS负载均衡群集实例 根据生产环境的不同,群集所提供的功能也各不相同,采用的技术细节也可能各有千秋。关于群集技术的相关概念如下: 1、 群集类型 无论是哪种群集,都至少包括两台节点服务器,而对外表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机。根据群集所针对的目标差异,可以分为以下三种类型: 负载均衡群集(LB):以提高应用系统的响应能力、尽可能处理更多的访问请求、较少延迟为目的,获得高并发、高负载的整体性能。例如,“DNS轮询” 、“应用层交换”、“反向代理”等都可用做负载均衡群集。LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。 . 高可用群集(HA):以提高应用系统的可靠性,尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果,例如,“故障切换”。“双机热备”、“多机热备”、等都属于高可用群集技术,HA的工作方式包括双工和主从两种模式。双工就是所有节点同时在线;主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点

四层负载均衡LVS/DR模式的配置

て烟熏妆下的殇ゞ 提交于 2019-11-29 09:30:38
1、环境准备 准备 3 台纯净的虚拟机,两台 web 服务器,并关闭所有的防火墙和selinux 2、部署说明: • 网络使用NAT模式 • DR模式要求Director DIP 和 所有RealServer RIP必须在同一个网段及广播域 • 所有节点网关均指定真实网关 3、LVS-server 安装lvs管理软件 yum -y install ipvsadm 4、需要手动生成ipvsadm文件否则启动会报错 [root@vm-2 ~]# ipvsadm --save > /etc/sysconfig/ipvsadm 启动: [root@vm-2 ~]# systemctl start ipvsadm 5、配置ipvsadm: [root@vm-2 ~]# ip addr add dev ens33 10.30.161.200:80/32 设置VIP [root@vm-2 ~]# ipvsadm -A -t 10.30.161.200:80 -s rr -A添加一个VIP,-t用的是tcp协议,-s rr采用轮训算法 添加转发到realserverip真实服务器的ip: [root@vm-2 ~]# ipvsadm -a -t 10.30.161.200:80 -r 10.30.161.214:80 -g [root@vm-2 ~]# ipvsadm -a -t 10.30