nginx反向代理及负载均衡使用说明
文章目录
集群介绍
简单地说,集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点(即集群种的每台计算机)都是运行各自服务的独立服务器,这些服务器之间可以彼此通信,协同向用户提供应用程序、系统资源和数据,并以单一系统的模式加以管理,当用户客户机请求集群系统时,集群给用户的感觉就是一个单一独立的服务器,而实际上用户请求的是一组集群服务器。
用一句话描述集群:
即一堆服务器合作做同一件事!
负载均衡架构图
为什么要使用集群
1.高性能计算
2.价格有效性
3.可伸缩性
4.高可用性
集群概念的特点说明:高可用,高性能(核心特点)
集群种类
(1) 负载均衡集群,简称LBC或者LB
—解决调度问题
- 硬件设备
F5 : 硬件设备
A10 : 硬件设备
- 软件实现
Nginx : 工作在7层,1.9版本之后也支持4层负载
LVS : 工作在4层
Haproxy(大公司常用) : 兼容4层负载和7层负载,有图形化界面
(2) 高可用性集群,简称HAC或者HA
—解决单点故障问题(keepalived)
(3) 高性能计算集群,简称HPC或者HP
—不常用:主要处理复杂的运算,算法,建模,科研常用
(4) 网络计算 —不常用:云计算有关
负载均衡概念说明
-
对用户的访问请求进行
调度管理
-
对用的的访问请求进行
压力分担
-
调度管理示例
-
压力分担示例
压力测试
- 软件apache,ab(Apache Bench)功能
拿到服务器先进行压力测试,查看最大值是多少!!!按最大值进行搭建web服务器数量(要有一定冗余量,做到一半的机器坏了,另一半能继续支撑没有异常,
防止雪崩的情况
)
- 解决负载均衡单点故障
再加一台备负载均衡服务器,主和备之间用一根心跳线相连,主的挂掉以后,备的立马顶替,实现高可用服务器集群。
及解决了负载的压力分担又解决了单点故障的问题!
- 压力测试软件ab(Apache Bench)的原理:
ab命令会创建多个并发访问线程,
模拟多个访问者同时对某一URL地址进行访问。
它的测试目标是基于URL的,因此,它既可以用来测试apache的负载压力,也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。
ab命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。
反响代理概念说明
接收用户请求替代用户想后端访问。
反向代理图解
第一步: 客户端发送请求到反向代理负载均衡服务器
第二步: 反向代理服务器接收到请求后,代替客户端向后端web服务器发起访问请求(这里对于web服务器来说反向代理服务器就是客户端!对于客户端来说反向代理是服务端!)
第三步: web服务器把响应的请求发送给反向代理服务器
第四步: 反向代理接收到请求后,把请求发送给客户端
数据转发图解
主要运用在LVS上
第一步 : 客户端发送请求到数据转发负载均衡服务器
第二步 : 负载均衡服务器不做处理,直接转发给后方节点服务器
第三步 : web服务器接收到请求后,返回给负载均衡服务器响应请求
第四步 : 负载均衡服务器接收到响应请求后,不做处理,直接转发给客户端!还有一种情况是,在web服务器返回数据的时候,不经过负载均衡服务器,直接通过网络找到客户端返回响应请求!
实践环境准备
- 安装依赖包(pcre-devel openssl-devel)
yum install -y pcre pcre-devel openssl openssl-devel
- 下载Nginx软件
使用命令下载:
wget -q http://nginx.org/download/nginx-1.14.0.ta