高性能高可用方案Nginx (三)Upstream(负载均衡)
2015-10-16 14:45
567 查看
1、理论部分[b]1.1、nginx的负载均衡[/b]nginx的负载均衡由upstream模块实现[b]1.2、nginx的模块[/b][b][b]1.2.1、nginx的模块分类[/b][/b]nginx模块分为三大类:1)handler2)filter3)upstream(上游)[b][b]1.2.2、模块的作用[/b][/b]handler&filter - 用于完成单机工作upstream - 用于跨越单机限制,完成网络数据接收、处理和转发[b][b]1.2.3、upstream的意义[/b][/b]为nginx提供跨越单机的横向处理扩展能力,使nginx摆脱只能作为终端节点,而具备网络应用级别的拆分、封装和整合的战略功能。[b]1.3、upstream的使用方法[/b][b][b]1.3.1、定义upstream组和调用[/b][/b]
proxySer:
ip address=10.168.0.185
hostname=proxySer
tomcatSer:
ip address=10.168.0.188
hostname=tomcatSer
client:
ipaddress=10.168.0.8
hostname=client
[b][b]2.1.3、yum包安装[/b][/b]
In lbSer
In lbSer[b][b]2.2.1、step[/b][/b]vim编辑/etc/nginx/nginx.conf将原来http{}部分删除,替换为如下代码:
http { upstream myproject { server 127.0.0.1:8000 weight=3; server 127.0.0.1:8001; server 127.0.0.1:8002; server 127.0.0.1:8003; } server { listen 80; server_name www.domain.com; location / { proxy_pass http://myproject; } } }[b][b]1.3.2、upstream的分配方式[/b][/b]1)round robin(默认)轮询,每个请求按照时间顺序逐一分配,如果后端服务器宕机,会自动剔除。2)weight加权轮询,用于解决后端服务器性能不均的情况。定义方法:
upstream cmdschoolSer { server 10.168.0.185 weight=10; server 10.168.0.186 weight=10; }3)ip_bash每个请求按照访问ip的bash结果分配,故访客固定访问一个后端服务器,可以解决session长期保持问题。定义方法:
upstream cmdschoolSer { ip_hash; server 10.168.0.185:8080; server 10.168.0.186:8080; }4)fair(第三方)按后端服务器的响应时间分配,响应时间短的优先分配。定义方法:
upstream cmdschoolSer { fair; server 10.168.0.185:8080; server 10.168.0.186:8080; }5)url_bash(第三方)定义方法:
upstream cmdschoolSer { server 10.168.0.185:8080; server 10.168.0.186:8080; hash $request_uri; hash_method crc32; }6)tips
upstream cmdschoolSer {#定义负载均衡设备的ip及设备状态 ip_hash; server 10.168.0.185:8080 down; server 10.168.0.185:8081 weight=2; server 10.168.0.186:8080; server 10.168.0.186:8081 backup; }[b][b]1.3.3、设备的状态[/b][/b]1)down表示当前server暂时不参与负载2)weight数值越大权重越大(默认1)3)max_fails允许请求失败的次数,超过失败次数,返回proxy_next_upstream模块定义的错误(默认1)4)fail_timeoutmax_fails次失败后,暂停的时间5)backup其他所有非backup机器down或者忙的时候,请求backup机器(压力最轻)2、实验部分[b]2.1、实验信息[/b][b][b]2.1.1、实验基础[/b][/b]你已经做完以下实验:/article/4214698.html[b][b]2.1.2、主机信息[/b][/b]lbSerip address=10.168.0.183hostname=lbSer
proxySer:
ip address=10.168.0.185
hostname=proxySer
tomcatSer:
ip address=10.168.0.188
hostname=tomcatSer
client:
ipaddress=10.168.0.8
hostname=client
[b][b]2.1.3、yum包安装[/b][/b]
In lbSer
yum -y install http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm yum -y install nginx[b]2.2、配置部分[/b]
In lbSer[b][b]2.2.1、step[/b][/b]vim编辑/etc/nginx/nginx.conf将原来http{}部分删除,替换为如下代码:
http { upstream cmdschool { server 10.168.0.185:81; server 10.168.0.185:82; } server { listen 80; server_name www.cmdschool.org; location / { proxy_pass http://cmdschool; } } }[b][b]2.2.2、step[/b][/b]启动服务并设置为开机启动
/etc/init.d/nginx restart chkconfig nginx on[b][b]2.2.3、step[/b][/b]vim编辑/etc/sysconfig/iptables增加如下代码:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT[b][b]2.2.4、step[/b][/b]重启防火墙
/etc/init.d/iptables restartIn client[b][b]2.2.5、step[/b][/b]测试负载均衡
curl http://10.168.0.182 curl http://10.168.0.182 curl http://10.168.0.182 curl http://10.168.0.182[/code]---------------------------------------------------------- 理论部分参阅资料:1)官方:http://www.nginx.org2)Tengine:http://tengine.taobao.org
实验部分参阅资料:1)Nginx官方下载路径:http://nginx.org/en/download.html2)Nginx+Tomcat负载均衡配置(Upstream模块)
https://www.nginx.com/resources/wiki/start/topics/examples/loadbalanceexample/http://tengine.taobao.org/book/chapter_5.html/article/5025886.htmlhttp://onlyzq.blog.51cto.com/1228/557848/http://developer.51cto.com/art/201407/446626.htmhttp://www.myhack58.com/Article/sort099/sort0102/2011/31642.htm
本文出自 “老谭linux集群博客” 博客,请务必保留此出处http://cmdschool.blog.51cto.com/2420395/1703509
相关文章推荐
- Nginx配置文件nginx.conf中文详解
- ngxin 启用 gzip
- PHP上传文件大小限制 (Nginx + PHP)
- Apache 和nginx支持跨域访问
- nginx分发到备站服务器导致登录失效
- Nginx个人调优见解
- nginx网站502与504错误分析
- Zabbix 监控 Nginx 状态
- awk统计nginx日志访问前一百的ip
- IE和Firefox下的Cookie兼容问题
- 使用 Nginx 静态化动态网站
- window设置Nginx+iis实现负载均衡
- nginx 输出自定义response header 到access.log
- nginx基本操作
- Nginx 配置 SSL 及 SSL 证书的创建过程
- CentOS6.4下基于Nginx搭建mp4/flv流媒体服务器
- nginx模块使用自定义变量
- nginx 1.9.3中pathinfo设置
- nginx的内页跳转总结
- nginx 做负载均衡