码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx负载均衡

时间:2015-08-21 00:25:03      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:服务器   web server   

Nginx负载均衡的5种调度算法:
1)轮询(默认):每一个请求按请求顺序逐一分配到不同的后端服务器,如果后端某一台服务器down掉,nginx因为具有后端健康检查功能,所以能自动剔除;
2)weight:加权轮询,weight与访问比率成正比,主要用于后端服务器性能不均的情况;
3)ip_hash:每个请求按访问ip的hash结果分配;当请求到达时,先把ip通过哈希算法进行哈希出一个值,在以后的请求中,ip的哈希值只要相同,就会被分配到同一个server上,有效解决了动态网页存在的session共享问题;
4)fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配,如果使用这种调度算法,必须下载nginx的第三方模块upstream_fair;
5)url_hash(第三方):按访问的url的hash结果分配请求,同一个url定向到同一个后端服务器,适用于后端服务器为缓存时,提供后端服务器的缓存效率;

upstream中支持的状态参数:
在HTTP upstream模块中,可以通过server指令指定后端服务器的ip地址和端口,同时也可以设定每个后端服务器在负载调度策略中的状态;常用状态有:
1)down:表示此server暂时不参与负载均衡;
2)backup:备份server,当其他非backup server出现故障时就会请求backuo server,一般这台机器压力最轻;
3)max_fails:允许请求失败的次数,默认为1,当超过最大次数时,返回proxy_next_upstream 模块定义的错误;
4)fail_timeout:在经历了max_fails次失败后,暂停服务的时间,一般和max_ fails一起使用;

客户主机:        172.25.16.3

后端负载均衡主机:172.25.16.2

                  172.25.16.4
1.安装依赖包
[root@server3 ~]# yum install -y gcc-c++ make bison openssl-devel zlib-devel cmake pcre-devel

2.解压、源码编译及安装
[root@server3 ~]# tar -zxvf nginx-1.6.3.tar.gz
[root@server3 ~]# cd nginx-1.6.3
[root@server3 nginx-1.6.3]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
[root@server3 nginx]# make && make install
[root@server3 nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

3.添加系统用户并指定目录
[root@server3 nginx]# useradd -d /usr/local/nginx/ -M -s /sbin/nologin nginx

4.修改配置文件
[root@server3 nginx]# vim /usr/local/nginx/conf/nginx.conf
user  nginx nginx;
http {
    upstream westos {        #负载均衡集群
        server 172.25.16.2;
        server 172.25.16.4;
    }
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            proxy_pass http://westos;
        }
   }
}
#注:upstream是定义在server{ }外,在http{ }的里面。定义好后用proxy_pass引用即可
[root@server3 nginx]# nginx      #开启nginx
[root@server3 nginx]# nginx -t   #检查配置文件是否有语法错误
[root@server3 nginx]# nginx -s reload  #重新加载nginx
#此时从客户端刷新浏览器,web2和web4交替出现
#几种调度策略的书写方式

//weight的调度策略
upstream westos {
        server 172.25.16.2 weight=3;
        server 172.25.16.4 weight=1;
    }
//ip_hash的调度策略
upstream westos {
        ip_hash;
        server 172.25.16.2;
        server 172.25.16.4;
    }
//进行健康状态的检查同时配置backup server ,防止后端server 全部故障造成用户使用不便
upstream westos {
        server 172.25.16.2 max_fails=2 fail_timeout=2;
        server 172.25.16.4 max_fails=2 fail_timeout=2;
        server 172.25.16.5 backup;
    }

本文出自 “8397752” 博客,请务必保留此出处http://8407752.blog.51cto.com/8397752/1686683

Nginx负载均衡

标签:服务器   web server   

原文地址:http://8407752.blog.51cto.com/8397752/1686683

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!