NGINX作负载均衡应用案例

    Nginx的负载均衡是通过upstream命令实现的,其负载均衡机制较为简单,基于内容和应用的7层交换负载均衡的实现。nginx对后端服务器有较弱的健康监测机制,但是仅限于端口检测,因此当后端服务器少于10台时,表现能力较为突出。当后端有大量节点时,由于所有访问都从一台进出,容易引发堵塞导致访问失败,因此无法充分发挥后端服务器的性能。

    Nginx有如下几种调度算法:

1.轮询(默认),按照请求时间逐一分配到后端节点,健康监测触发时,自动剔除故障节点。

2.weight 手动指定轮询权值 ,weight值越大,受防几率越高,应用于后端节点性能不一的情况下。

3.ip_hash 每个请求按访问ip的哈希结果分配,来自同一个ip的访问固定访问同一个后端节点,可以有效解决动态网页存在的session共享问题

4.fair 该功能需要nginx支持upstream_fair模块,本文不做介绍

5.url_hash 按url的哈希结果按分配请求,使每一个url定向到同一个节点,可以进一步提高缓存服务器效率,默认是不支持url_hash的,需要安装nginx的hash软件包提供支持。

在http Upstream模块中。通过server命令来指定后端节点的IP地址和端口,同时还可以设定每台节点的状态,常用状态如下:

1.down 表示为当前节点不参与负载

2.backup 表示为预留的备份节点,当所有的非backup节点都出现故障时,才请求该节点。

3.max_fails 表示为允许请求失败的次数,默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误

4.fail_timeout 在经历max_fails的失败后,暂停服务的时间,可以与max_fails同时使用

注意:当负载算法为ip_hash时,后端节点状态不能是weight和backup


配置示例:(部分配置)

请求www.myupstream.com站点将跳转到nginx负载均衡后端节点,192.168.10.129:5001端口和5002端口,权重分别为1和2,

其中两台后端虚拟节点,192.168.10.129:5001跳转到百度页面,192.168.10.129:5002重定向到我的个人博客地址

http://blog.csdn.net/jeccisnd


http { 
    upstream newserver {
                server 192.168.10.129:5001 weight=1 max_fails=3 fail_timeout=20s;
                server 192.168.10.129:5002 weight=2 max_fails=3 fail_timeout=20s;
                }
        server
        {
        listen 80;
        server_name www.myupstream.com;
        index index.html;

        location / {
        proxy_pass http://newserver;
        proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
                }
        }
        server
        {
        listen 5001;
        server_name 192.168.10.129;
        index index.html;

        location / {
        proxy_pass http://www.baidu.com/;
                }
        }

        server
        {
        listen 5002;
        server_name 192.168.10.129;
        index index.html;

        location / {
        rewrite ^/(.*)$ http://blog.csdn.net/jeccisnd/$1 permanent;
                }
        }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值