1、 安装nginx
https://blog.csdn.net/qq_50247813/article/details/126550316
2、 修改配置文件,配置后端服务器
2.1、有3台后端服务需要实现负载均衡
172.17.0.2:80
172.17.0.3:80
172.17.0.4:80
2.2、修改配置文件,使用代理的方式实现负载均衡(默认轮询)
upstream myweb {
server 172.17.0.2:80;
server 172.17.0.3:80;
server 172.17.0.4:80;
}
server {
listem 80;
server_name 192.168.92.20; # 本机ip或者域名
location / {
proxy_pass http://myweb;
}
}
设置代理名字为myweb,代理到myweb实现负载
3、 负载模式的介绍
nginx默认采用轮询的方式进行负载均衡
1、 加权轮询
weight代表权重默认为1,权重越高被分配的客户端越多。指定轮询几率,weight权重大小和访问比率成正比。
upstream myweb {
server 172.17.0.2:80 weight=1;
server 172.17.0.3:80 weight=5;
server 172.17.0.4:80 weight=2;
}
2、 hash负载均衡
每个请求按访问的ip的hash结果分配,这样每个访客固定访问一个后端服务器 好处:使用nginx +
ip_hash这种策略代理,很好解决了同一用户访问同一个应用,session不共享的问题,实现了session共享的问题
不能把后台服务器直接移除,只能标记down
- 不能把后台服务器直接移除,只能标记down
3、 url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效
upstream myweb {
ip_hash
server 172.17.0.2:80;
server 172.17.0.3:80;
server 172.17.0.4:80;
hash $request_uri;
hash_method crc32;
}
4、 fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配
upstream myweb {
ip_hash
server 172.17.0.2:80;
server 172.17.0.3:80;
server 172.17.0.4:80;
fair
}
5、 least_conn(最小连接负载均衡)
1、 选取活跃连接数与权重weight的比值最小者为下一个处理请求的server。当然,上一次已选的server和以达到最大连接数的server照例不在选择的范围内
2、 假如上一个请求选择了第二台172.17.0.3,下一个请求到来时,通过比较剩下可用的server的conns/weight值来决定选哪一台。
3、如果172.17.0.2连接数为 100,172.17.0.2连接数为80,应为权重分别为2和1,因此计算结果100/2=50,80/1=80。应为50<80所以选择第一台而不是第二台,尽管连接数第一台要大于第三台。文章来源:https://www.toymoban.com/news/detail-415463.html
upstream myweb {
least_conn;
server 172.17.0.2:80 weight 2;
server 172.17.0.3:80 weight 1;
server 172.17.0.4:80 weight 1;
}
4、 upstream指令参数文章来源地址https://www.toymoban.com/news/detail-415463.html
max_conns: 限制最大同时连接数1.11.5版本只能用于商用版
down:禁止访问
backup:备用机 只有在其他服务器无法访问的时间才能访问到,不适用与hash负载均衡、随机负载均衡
max_fails:表示失败几次,则标记server已宕机,剔除上游默认值1
fail_timeout:表示失败的重试时间默认值10
到了这里,关于nginx负载均衡的实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!