nginx负载均衡设置

 

在nginx的配置文件【./conf/nginx.conf】中加入:

upstream test.balance123.com {

server 192.168.1.223:80;
server 192.168.1.101:8888;

}
server {
listen 80;
location /{
proxy_pass http://test.balance123.com;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;

  proxy_read_timeout 200;//用于代理超时控制
}
}

默认轮循。

1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、加权轮询

根据请求按一定比例访问后端服务器,主要用于服务资源分配不均的情况。

upstream test.balance123.com {

server 192.168.1.223:80 weight=10;
server 192.168.1.101:8888 weight=5;

}

eg:上面的配置使得223的请求量是101的2倍

3、ip_hash

根据请求ip的hash结果分配后端服务器,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream resinserver{
ip_hash;

server 192.168.1.223:80;

server 192.168.1.101:8888;

}

4,least_conn

我们知道轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同。

这有个前提,就是每个请求所占用的后端时间要差不多,如果有些请求占用的时间很长,会导致其所在的后端

负载较高。在这种场景下,把请求转发给连接数较少的后端,能够达到更好的负载均衡效果,这就是least_conn算法。

 least_conn算法很简单,首选遍历后端集群,比较每个后端的conns/weight,选取该值最小的后端。

如果有多个后端的conns/weight值同为最小的,那么对它们采用加权轮询算法。

 

upstream resinserver{
least_conn;

server 192.168.1.223:80;

server 192.168.1.101:8888;

}

 

Note:Nginx的反向代理在配置上与负载均衡一致;只不过当后端服务器为一台时称为反向代理,有多台时称为负载均衡。

posted @ 2017-06-18 13:27  tjc123  阅读(204)  评论(0编辑  收藏  举报