负载均衡SLB(Server Load Balancer)是一种对流量进行按需分发的服务,通过将流量分发到不同的后端服务来扩展应用系统的服务吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性。
即将项目部署在多台服务器,通过 nginx 负载均衡策略转发请求至不同的服务器。
域名 | 项目路径 | 监听端口 | 配置文件 |
---|---|---|---|
sev.test.com | /data/project/test; | 80 | sev.test.com.conf |
sev.test.com | /data/project/test; | 8001 | sev.test.com.8001.conf |
sev.test.com | /data/project/test; | 8002 | sev.test.com.8002.conf |
配置并运行
sev.test.com.conf
1 | log_format main |
sev.test.com.8001.conf
1 | server { |
sev.test.com.8002.conf
1 | server { |
/data/project/test/index.php
1 |
|
访问
sev.test.com
,每次输出的端口在 8001 和 8002 交替
负载均衡配置说明
轮询(默认)
1 | 1. nginx 负载默认采用「轮询」试,顾名思义,所有请求都按照时间顺序分配到不同的服务上 |
1 | upstream sev.test.com { |
权重
1 | 1. 在轮询策略的基础上制定沦陷的几率 |
1 | upstream sev.test.com { |
iphash
1 | 1. 负载均衡器按照客户端IP地址的分配方式,可以确保相同客户端的请求一直发送到相同的服务器。这样每个访客都固定访问一个后端服务器。 |
1 | upstream sev.test.com { |
最小连接
1 | 1. 把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果 |
1 | upstream sev.test.com { |