您的位置:首页 > 运维架构 > Nginx

Nginx负载均衡

2015-08-20 23:01 579 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务器 web server