当业务系统需要配置集群时,会用到nginx的负载均衡功能。nginx提供如下几种:
1、轮询(默认):将不同的请求随机分配给配置的服务器,若出现宕机,则自动切换;轮询可配置weight值,即权重,权重越高被选中的几率越大,通常与服务器本身的性能成比例;
2、ip_hash: 根据IP值进行hash,此方式保证同一个ip的请求发送到同一台服务器,这样可以不考虑session共享问题;
3、fair:根据后端服务器的相应时间来选择,该方式需要下载nginx upstream faire插件;
4、url_hash:根据URL来hash到不同的服务器,同一个URL分配到同一个服务器,该方式也需要下载hash插件;
下面给出一个最简单的轮询配置:
upstream fredric.net {
server localhost:3000;
server localhost:2000;
}
server {
listen 800;
server_name localhost;
location / {
proxy_pass http://fredric.net;
}
upstream还提供一系列的参数,包括:
1、down: 该服务器不参与负载均衡;
2、backup: 当其他服务器都忙或故障时,才启用该服务器;
3、max_fails:允许的最大错误次数;
4、fail_timeout:当max_fails超过时,暂停服务的时间;