网站源码下载PR查询短网址
首页编程数据库网页图形冲浪邮件下载浏览器QQ系统办公软件站长安全手机邮件认证组网通信


网站首页 -> 网络编程 -> PHP技巧
有关nginx upstream的几种分配方式

发表日期:2009-7-3


nginx的upstream目前支持4种方式的分配

1、轮询(默认)

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

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
例如:
    upstream bakend {
         server 192.168.0.14 weight=10;
         server 192.168.0.15 weight=10;
    }

2、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
    upstream bakend {
         ip_hash;
         server 192.168.0.14:88;
         server 192.168.0.15:80;
    }

3、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend {
    server server1;
    server server2;
    fair;
}

4、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream backend {
    server squid1:3128;
    server squid2:3128;
    hash   $request_uri;
    hash_method crc32;
}

tips:

upstream bakend{#定义负载均衡设备的Ip及设备状态
ip_hash;
    server 127.0.0.1:9090 down;
    server 127.0.0.1:8080 weight=2;
    server 127.0.0.1:6060;
    server 127.0.0.1:7070 backup;
}
在需要使用负载均衡的server中增加
PRoxy_pass http://bakend/;

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

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path 设置记录文件的目录 可以设置最多3层目录

location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

上一篇:nginx缓存cache的5种方案 人气:3167
下一篇:IIS下PHP的ISAPI和FastCGI比较 人气:3674
网站文章搜索
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<PHP技巧教程>的内容
今日更新文章
·Office 2010宝典 word之(10)巧用书法字帖
·Office 2010宝典 word之(9)快速更改文档
·Office 2010宝典 word之(8)让艺术字为您
·Office 2010宝典 word之(7)通过主题快速
·Office 2010宝典 word之(6)快速插入文档
·Office 2010宝典 word之(5)您手边的工具
·Office 2010宝典 word之(4)多语言翻译
·Office 2010宝典 word之(3)可以朗读的屏
·Office 2010宝典 word之(2)利用文档导航
·Office 2010宝典 word之(1)利用文档导航
·微软:Silverlight在HTML5时代有竞争力
·LG TB200:不买你就输了!
本栏目推荐文章
·实现界面跟随鼠标移动的实例
·轻松实现DBGrid的多表头
·柱状图表示学生成绩各分数段比率
·初学者如何开发出一个高质量的J2EE系统
·Java EJB容器的存取和实现
·深入解析:J2ME 的平台体系结构
·我编的国旗图形
·Perl简介(适合对C语言有点认识的读者)
·用ASP让用户访问指定页面
·如何为嵌入式开发建立交叉编译环境
·轻松加密ASP.NET 2.0 Web程序配置信息
·ASP.NET中文乱码解决方案四则
Copyright © 2000-2010 www.Devdao.com All rights reserved | 沪ICP备05001343号 sitemap