前言
为了提升后台服务器的处理能力,可以增加服务器.实现负载均衡的策略。
准备工作
Tomcat
- 在Tomcat服务器创建
/edu/a.html
网页文件

Apache
- 在Apache服务器创建
/edu/a.html
网页文件

启动
启动Tomcat
和Apache
并查看端口占用情况
启动Nginx
并查看端口占用情况

编辑配置文件
1
| vim /usr/local/etc/nginx/nginx.conf
|
修改配置文件
http 块
1 2 3 4
| upstream myserver { server 127.0.0.1:8080 weight=1; server 127.0.0.1:8081 weight=1; }
|
server 块
1 2
| listen 80; server_name 127.0.0.1;
|
location 块
- 增加
proxy_pass
,值为刚创建的upstream块名
,增加proxy_connect_timeout
,超时时间
1 2 3 4 5
| location / { ... proxy_pass http://myserver; proxy_connect_timeout 10; }
|
Nginx分配服务器策略
轮询(默认)
- 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
权重
- weight代表权重,默认为1,权重越高被分配的客户端越多
1 2 3 4
| upstream server_pool { server 127.0.0.1:8080 weight=1; server 127.0.0.1:8081 weight=1; }
|
ip_hash
- 每个请求访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决seccion问题
1 2 3 4 5
| upstream server_pool { ip_hash; server 127.0.0.1:8080; server 127.0.0.1:8081; }
|
风险
- 由于IP进行hash计算,则可能出现多个用户同时绑定一台服务器的效果,导致负载不均衡
- 如果绑定同一台服务器,如果这台服务器宕机,则直接影响用户使用
fair(第三方)
- 按后端服务器的响应时间来分配请求,响应时间短的优先分配
1 2 3 4 5
| upstream server_pool { server 127.0.0.1:8080; server 127.0.0.1:8081; fair; }
|
其他属性
配置关闭服务器
down
:关闭服务器
1 2 3 4
| upstream server_pool { server 127.0.0.1:8080 down; server 127.0.0.1:8081; }
|
配置备用机
- 正常情况下,该服务器不会为用户提供服务。但是当服务器宕机,或者服务器正忙时,才会访问该服务器。
bachup
:表示备用机
1 2 3 4
| upstream server_pool { server 127.0.0.1:8080 backup; server 127.0.0.1:8081; }
|
配置高可用
- 当服务器发生故障时,通过某种机制可以自动的实现故障的迁移,从而使得用户不受任何的影响。
max_fails
:最大失败次数
fail_timeout
:如果访问不通,60s之内,不会再次访问故障机
1 2 3 4
| upstream server_pool { server 127.0.0.1:8080 max_fails=1 fail_timeout=60s; server 127.0.0.1:8081; }
|
完成


参考文献
哔哩哔哩——尚硅谷官方