Nginx负载均衡组件模块
实现Nginx负载均衡的组件主要有两个:
n ngx_http_proxy_module proxy代理模块,用于把请求后抛给服务器节点或upstream服务器池
n ngx_http_upstream_module 负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查
1、upstream模块
upstream模块允许Nginx定义一组或多组节点服务器组,使用时可以通过proxy_pass代理方式把网站的请求发送到事先定义好的对应upstream组的名字上,具体写法为:
proxy_pass http://www_server_pools
其中www_server_pools就是一个upstream节点服务器组名字,例如:
upstream www_server_pools {server 10.0.0.17:80 weight=5;server 10.0.0.17:80 weight=1max_fails=1 fail_timeout=10s;#默认参数server 10.0.0.18:80 weight=10max_fails=2 fail_timeout=20s backup;server 10.0.0.19:82 weight=15;server unix:/tmp/backend3;}
配置说明:
n upstream模块的内容应放于nginx.conf配置的http标签内,默认调度节点算法是wrr(权重轮询,weighted round-robin)
n server:负载均衡后面的rs配置,可以是ip或域名
n weight:服务器的权重,默认值为1,越大表示接受的请求比例越大
n max_fails:nginx尝试连接后端主机失败的次数,这个数值是配合proxy_net_upstream,fastcgi_next_upstream和memcached_next_upstream这三个参数来使用的,当nginx接收后端服务器返回这三个参数定义的状态码时,会将这个请求转发给正常工作的后端服务器,例如404,502,503
n backup:热备配置(rs节点的高可用),当前面激活的rs都失败