nginx负载均衡简单介绍
1、大项目衡量依据
-
PV:项目所有页面1天内被访问的总次数,PV值达到千万级别属大型项目
-
UV:项目1天内被访问的用户数,UV达到10万级别属大型项目
-
独立IP:项目1天被访问的IP数量
2、负载均衡
2.1、介绍
为了解决web请求的压⼒,将请求安装⼀定的算法分发给其他的服务器来处
理请求。负载均衡属于集群(多台服务器每⼀个都能够单独的完成⼀项任
务。如果某⼀个异常也不会影响整个任务的运⾏)中的⼀种应⽤ 。
graph LR
a[客户端]-->b[负载均衡反向代理服务器<br>-自身不处理请求 仅分发请求-]
b-->c[nginx服务器1]
b-->d[nginx服务器2]
c-->b
d-->b
b-->a
2.2、算法
- 轮循:按照顺序逐个分配
- 权重:按照指定的比例采用轮循的方式来分配
- 最小连接:将请求分发给处理请求数量最少的服务器
- ip_hash:根据请求的客户端的IP地址分配给固定的某⼀个服务器处理请求
3、nginx
3.1、nginx介绍
nginx:属于⼀款轻量级别的邮件服务器、http服务器及反向代理服务器。
3.2、apache与nginx的区别
- apache功能强⼤,运⾏稳定
- nginx功能少,稳定性⽐apache略差
- apache在并发情况下性能⼀般(完全依靠进程来处理任务来⼀个请求产 ⽣⼀个进程处理)
- nginx在⾼并发时性能良好(依旧采⽤的进程⽅式进⾏⼯作但是nginx使⽤了异步⾮阻塞⽹络模式)
4、实现负载均衡
4.1、准备3台服务器
-
负载均衡反向代理服务器:nginxDL,IP=192.168.0.100
-
服务器1:nginx1,IP=192.168.0.1
-
服务器2:nginx2,IP=192.168.0.2
(保证服务器之间访问正常)
4.2、upstream语法
upstream 别名{
server 域名/IP地址 参数;
}
参数:
1. weight=number:权重
2. bakup:备份服务器,当其他服务器宕机才执行任务
3. down:不可⽤状态,不参与执行任务
4.2、配置
在nginxDL服务器,打开nginx.conf配置文件
upstream web{
server 192.168.0.1 weight=1; # 1/3概率接收请求
server 192.168.0.2 weight=2; # 2/3概率接收请求
}