nginx反向代理与负载均衡配置

演示说明:

域名:weilai.cctvzxjy.com

主服务器:39.106.208.11

从服务器1:47.92.150.11

从服务器2:121.42.199.98


同步服务器件文件采用rsync+inotify同步服务器文件,下篇文章中介绍。


1、安装nginx,很简单,这里就不多介绍了,建议源码安装。

2、配置nginx

    1》反向代理

server{
    listen 80; 
    server_name weilai.cctvzxjy.com;
    location / { 
        proxy_store off;
        proxy_redirect  off;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_pass http://weilai.cctvzxjy.com;  
    }   
}

2》负载均衡

1)轮播模式(默认)

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

http{
    upstream weilai.cctvzxjy.com{
        server 47.92.150.116:80;
        server 121.42.199.98:80;
     }
}

2)weight模式

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

http{
    upstream weilai.cctvzxjy.com{
        server 47.92.150.116:80 weight=10;
        server 121.42.199.98:80 weight=5;
     }
}


3)ip_hash模式

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

http{
    upstream weilai.cctvzxjy.com{
        ip_hash;
        server 47.92.150.116:80;
        server 121.42.199.98:80;
     }
}


4)fair模式(第三方软件)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。由于采用fair负载策略,配置weigth参数改变负载权重将无效。

需要下载编译fair软件(https://github.com/gnosek/nginx-upstream-fair)

http{
    upstream weilai.cctvzxjy.com{
        fair;
        server 47.92.150.116:80;
        server 121.42.199.98:80;
     }
}

5)url_hash模式(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法,剩下参数自己查阅。

http{
    upstream weilai.cctvzxjy.com{
        server 47.92.150.116:80;
        server 121.42.199.98:80;
        hash $request_uri;
        hash_method crc32;
     }
}


每个设备的状态设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

6.max_conns:限制分配给某台Server处理的最大连接数量,超过这个数量,将不会分配新的连接给它。默认为0,表示不限制。注意:1.5.9之后的版本才有这个配置。

7.resolve:将server指令配置的域名,指定域名解析服务器。

需要在http模块下配置resolver指令,指定域名解析服务。

http{
    resolve 192.168.0.2:80;
    upstream weilai.cctvzxjy.com{
        server 192.168.0.1:80 max_conns=1000;
        server 192.168.0.1:80 down;
        server 192.168.0.1:80 weight=10 max_fails=3 fail_timeout=15;
        server 192.168.0.1:80 backup;
        server 192.168.0.1:80 resolve;
    }
}


配置忘不要忘记重启nginx服务器!!!!

3》演示(默认的轮训模式,其他模式自行测试)

第一次请求

image.png

第二次请求

image.png


第三次请求

image.png

第四次请求

image.png



声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

本文如需转载,请注明来源phpisfuture.com并保留原文链接:https://article.phpisfuture.com/p/180.html

精彩评论

全部回复3人评论3人参与
  1. 6楼
    梦。  

    1楼3楼4楼呢?

    2018-12-02 23:42:30 回复
  2. 5楼
    梦。  

    莱哥牛逼

    2018-12-02 23:41:29 回复
  3. 2楼
    白熊。狗狗  

    作者是狗

    2018-08-22 16:32:52 回复


登录】、【注册】之后即可畅所欲言啦,快快行动吧~

关注我Follow Me

最新文章New Articles