Nginx中怎么实现负载均衡,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>上游支持4种负载均衡调度算法:强>
)轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器;
B) ip_hash:每个请求按访问IP的散列结果分配,同一个IP客户端固定访问一个后端服务器。可以保证来自同一IP的请求被打到固定的机器上,可以解决会话问题。
C) url_hash:按访问url的散列结果来分配请求,使每个url定向到同一个后端服务器。后台服务器为缓存的时候效率。
D)公平:这是比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配.Nginx本身是不支持公平的,如果需要使用这种调度算法,必须下载Nginx的upstream_fair模块。
<强> 1,默认轮训强>
打开Nginx配置文件
[root@master ~] #, vi /etc/Nginx/conf.d/违约。参看
写轮训配置
#设定负载均衡服务器列表 upstream roundrobin  { #后才能端服务器访问规则 ,server 192.168.1.115:8080 体重=1;,,# server1 ,server 192.168.1.131:8081 体重=1;,,# server1 ,server 192.168.1.94:8090 体重=1;,# server3 } server { listen 才能;80; server_name 才能;192.168.1.131; 的位置才能/,{ ,,,proxy_pass http://roundrobin; ,,} }
配置完成后
//检查,nginx 配置是否正确 nginx -t //重新加载,nginx 配置 service nginx 重载
当访问http://192.168.131的时候,会把这个请求负载到192.168.1.115的8080端口,192.168.1.115的8080端口,192.168.1.115的8080端口。负载的权重由重量来决定,默认为1,重量越大,权重就越大。
<强> 2,基于哈希强>
#设定负载均衡服务器列表 upstream roundrobin  { #后才能端服务器访问规则 ,ip_hash;,,,,,,,, #添加参数支持哈希 ,server 192.168.1.115:8080 体重=1;,,# server1 ,server 192.168.1.131:8080 体重=1;,,# server1 ,server 192.168.1.94:8090 体重=1;,,# server3 } server { listen 才能;80; server_name 才能;192.168.1.131; 的位置才能/,{ ,,,proxy_pass http://roundrobin; ,,} }
<>强设置后端负载均衡服务器的状态强>
,表示当前的服务器暂时不参与负载均衡。
备份,预留的备份机器。当其他所有的非备份机器出现故障或者忙的时候,才会请求备份机器,因此这台机器的压力最轻。
注意:备份不能和ip_hash同时配置。因为ip_hash只能访问同一台服务器,而备份是在只有所有参与负载均衡的服务器出现故障时,才会请求备份机。当所有负载均衡的服务器出现故障了,ip_hash的将无法请求了。
#设定负载均衡服务器列表 upstream roundrobin  { ,#后端服务器访问规则 ,server 192.168.1.115:8080 体重=1;,,# server1 ,server 192.168.1.131:8080 ;,,, # server2 不参与负载 ,server 192.168.1.94:8090 备份;,,,# server3 备份机, } server { listen 才能;80; server_name 才能;192.168.1.131; 的位置才能/,{ ,,,proxy_pass http://roundrobin; ,,} }
看完上述内容,你们掌握Nginx中怎么实现负载均衡的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!