所谓负载均衡,就是将多个任务按一定的规则分配给多个服务器,让每个服务器都能承载一定的任务数量。
代码:
#负载均衡 upstream backends { server 192.168.229.128:10086 ; server 192.168.229.128:10087 ; server 192.168.229.128:10088 ; } server { #监听的端口号 listen 9001; #服务器 server_name 192.168.229.128; location / { #指向代理 proxy_pass http://backends/; } }
Nginx的负载均衡,需要配合反向代理才能设置成功。
upstream 属性是设置负载均衡的关键字。
模板:
upstream 属性名{ server 服务器地址 }
在设置Nginx负载均衡时,我们会指定相关的算法进行任务数量的分配。
默认是采用轮询算法:即每个服务器处理一个任务,依照任务数量,依次执行。(A执行一次,B执行一次,...)
权重算法:即根据权重的值为指定的服务器分配,任务数量,权重值越大,服务器处理的任务数量就越多。
代码:
1 upstream book { 2 server 192.168.0.105:12306 weight=4; 3 server 192.168.0.105:12307 weight=1; 4 server 192.168.0.105:12308 backup; 5 6 } 7 8 9 server { 10 server_name 192.168.0.105; 11 listen 33333; 12 location / { 13 proxy_pass http://book/; 14 } 15 }
其中:
weight为权重值的属性;
backup为备机属性。
IP_HASH算法:根据用户的IP进行哈希运算后分配给每个用户固定的服务器IP地址,可以有效地解决动态网页共享的问题。
代码:
#负载均衡 upstream backends { ip_hash; server 192.168.229.128:10086 ; server 192.168.229.128:10087 ; server 192.168.229.128:10088 ; } server { #监听的端口号 listen 9001; #服务器 server_name 192.168.229.128; location / { #指向代理 proxy_pass http://backends/; } }
通过在upstream属性中,指定ip_hash关键字即可实现,采用ip_hash算法进行Nginx负载均衡的设置。