Nginx实现集群的负载均衡配置过程解析
Nginx的负载均衡功能,其实实际上和nginx的代理是同一个功能,只是把代理一台机器改为多台机器而已。Nginx的负载均衡和lvs相比,nginx属于更高级的应用层,不牵扯到ip和内核的修改,它只是单纯地把用户的请求转发到后面的机器上。这就意味着,后端的RS不需要配置公网。
一、实验环境
Nginx调度器(public172.16.254.200privite192.168.0.48)
RS1只有内网IP(192.168.0.18)
RS2只有外网IP(192.168.0.28)
二、配置文件
在nginx调度器上编辑配置文件
#vim/usr/local/nginx/conf/vhosts/lb.conf
添加如下内容:
upstreamtest{ ip_hash; server192.168.0.18; server192.168.0.28; } server{ listen80;150 server_namewww.aminglinux.com; location/{ proxy_passhttp://test/; proxy_set_headerHost$host; proxy_set_headerX-Real-IP$remote_addr; proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for; } }
三、配置说明
你会发现这个配置和我们之前讲的nginx代理配置如出一辙,只是多了一个upstream,这个upstream用来定义后端的RS,可以只写一个。ip_hash为nginx的一种调度算法,加上这一行后会达到这样的效果,即一个用户的请求会适中被分发到固定的一个RS上。这样的好处是,可以避免把同一个用户的请求分发到不同的机器上而导致session丢失的情况。upstream里面,RS后面的ip后面还可以加权重,比如"server192.168.31.100weight=100;"。还有一点要注意,upstream后面的test是自定义的一个名字,可以随便写,唯一的要求是要和proxy_pass后面保持一致。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。