JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

【nginx】十一、nginx负载均衡 nginx负载均衡详解

wys521 2024-09-29 23:29:52 精选教程 237 ℃ 0 评论

当用户量很大时,一台服务器单位时间内访问量很大的时候,服务器压力就会很大,当达到这台服务器的极限,就会崩溃;怎么解决?可以通过nginx的反向代理设置,添加几台同样功能的服务器 分担压力。

nginx负载均衡

nginx实现负载均衡原理,用户访问首先访问到nginx服务器,然后nginx服务器再从应用服务器集群中选择压力比较小的服务器,然后将该访问请求引向该服务器。如应用服务器集群中某一台服务器崩溃,那么从待选择服务器列表中将该服务器删除,也就是说一个服务器崩溃了,那么nginx服务器不会把请求引向到该服务器。

nginx通过指令upstream实现负载均衡,如:

upstream mypro { #mypro代表此负载均衡的规则名称

server 192.168.5.140:8080; #服务器1的ip地址以及端口

server 192.168.5.141:8080; #服务器2的ip地址以及端口

}

server {

listen 80;

server_name 192.168.5.138;

location / {

proxy_pass http://mypro;

}

}

上面的配置代表,用户访问服务器192.168.5.138,端口80时,nginx会把请求传发给mypro的负载均衡规则去处理;nginx会随机取一个mypro下的服务器来处理用户请求。

nginx在选取upstream服务器列表的规则,默认是随机;当然nginx还支持其他的选取规则

根据权重选取

upstream mypro { #weight权重越大,选取占比越高

server 192.168.5.140:8080 weight=5;

server 192.168.5.141:8080 weight=10;

}

根据ip_hash选取

upstream mypro {

ip_hash; #加入ip_hash指令

server 192.168.5.140:8080;

server 192.168.5.141:8080;

}

ip_hash选取规则,是根据请求客户端的ip的hash值配对选择一个服务器,下次此客户端再次访问时,会配对相同的服务器处理请求;这样的好处在于有些带有状态的业务,就可以一直在同一个服务器上进行处理。

ip_hash这种方式在很多场景会用到,如:session会话,状态转发服务等业务。

随机选取(默认)

upstream mypro {

server 192.168.5.140:8080;

server 192.168.5.141:8080;

}

nginx的负载均衡就先介绍到这里,大家有什么问题可以回复老顾

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表