Nginx+Tomcat搭建高性能负载均衡集群之枯藤老树


    天净沙·秋思

--枯藤老树昏鸦小桥流水人家古道西风瘦马。夕阳西下,断肠人      在天涯。

一、     工具

  nginx-1.8.0

  apache-tomcat-6.0.33


二、    目标


  实现高性能负载均衡的Tomcat集群:


  

 

三、    步骤


  1、首先下载Nginx,要下载稳定版:


  


  2、然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2:


  


  3、然后修改这两个Tomcat的启动端口,分别为18080和28080,下面以修改第一台Tomcat为例,打开Tomcat的conf目录下的server.xml:


  


  共需修改3处端口:


  


  当然第二台Tomcat也一样,如下图:


  


  4、然后启动两个Tomcat,并访问,看是否正常:


  

  


  5、然后修改上面两个Tomcat的默认页面(为了区分下面到底访问的是那一台Tomcat,随便改一下即可):


  


  改完以后,进行访问,如下图:


  

  


  6、OK,现在我们可以开始配置Nginx来实现负载均衡了,其实非常的简单,只需要配置好Nginx的配置文件即可:


  


  配置如下(这里只进行了简单的配置,实际生产环境可以进行更详细完善配置):

[html]  view plain copy
  1. worker_processes  1;#工作进程的个数,一般与计算机的cpu核数一致  
  2.   
  3. events {  
  4.     worker_connections  1024;#单个进程最大连接数(最大连接数=连接数*进程数)  
  5. }  
  6.   
  7. http {  
  8.     include       mime.types; #文件扩展名与文件类型映射表  
  9.     default_type  application/octet-stream;#默认文件类型  
  10.   
  11.     sendfile        on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。  
  12.       
  13.     keepalive_timeout  65; #长连接超时时间,单位是秒  
  14.   
  15.     gzip  on;#启用Gizp压缩  
  16.       
  17.     #服务器的集群  
  18.     upstream  netitcast.com {  #服务器集群名字   
  19.         server    127.0.0.1:18080  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  
  20.         server    127.0.0.1:28080  weight=2;  
  21.     }     
  22.   
  23.     #当前的Nginx的配置  
  24.     server {  
  25.         listen       80;#监听80端口,可以改成其他端口  
  26.         server_name  localhost;##############   当前服务的域名  
  27.   
  28.     location / {  
  29.             proxy_pass http://netitcast.com;  
  30.             proxy_redirect default;  
  31.         }  
  32.           
  33.   
  34.         error_page   500 502 503 504  /50x.html;  
  35.         location = /50x.html {  
  36.             root   html;  
  37.         }  
  38.     }  
  39. }  

  核心配置如下:


  


  到此配置完成,下面开始演示负载均衡。


  7、首先,我们启动Nginx:


  


  8、然后我们即可输入:localhost/index.jsp查看运行状况了


  第一次访问,发现访问的是Tomcat2上的程序:


  


  然后刷新,访问的还是Tomcat2上的程序:


  


  再刷新,发现变为了Tomcat1上的程序:


  


  再刷新,发现又变为了Tomcat2上的程序:


  


  到此,我们利用Nginx已经实现了负载均衡的Tomcat集群。我们不断的刷新,发现访问Tomcat2的概率大概是Tomcat1的2倍,这是因为我们在Nginx中配置的两台Tomcat的权重起的作用,如下图:


  



四、   总结

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为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进行匹配.可以进行重定向或者进行新的代理 负载均衡


感谢博主:写的简介明了,ranhttp://blog.csdn.net/wang379275614/article/details/47778201

YI

  nginx-1.8.0

  apache-tomcat-6.0.33


二、    目标


  实现高性能负载均衡的Tomcat集群:


  

 

三、    步骤


  1、首先下载Nginx,要下载稳定版:


  


  2、然后解压两个Tomcat,分别命名为apache-tomcat-6.0.33-1和apache-tomcat-6.0.33-2:


  


  3、然后修改这两个Tomcat的启动端口,分别为18080和28080,下面以修改第一台Tomcat为例,打开Tomcat的conf目录下的server.xml:


  


  共需修改3处端口:


  


  当然第二台Tomcat也一样,如下图:


  


  4、然后启动两个Tomcat,并访问,看是否正常:


  

  


  5、然后修改上面两个Tomcat的默认页面(为了区分下面到底访问的是那一台Tomcat,随便改一下即可):


  


  改完以后,进行访问,如下图:


  

  


  6、OK,现在我们可以开始配置Nginx来实现负载均衡了,其实非常的简单,只需要配置好Nginx的配置文件即可:


  


  配置如下(这里只进行了简单的配置,实际生产环境可以进行更详细完善配置):

[html]  view plain copy
  1. worker_processes  1;#工作进程的个数,一般与计算机的cpu核数一致  
  2.   
  3. events {  
  4.     worker_connections  1024;#单个进程最大连接数(最大连接数=连接数*进程数)  
  5. }  
  6.   
  7. http {  
  8.     include       mime.types; #文件扩展名与文件类型映射表  
  9.     default_type  application/octet-stream;#默认文件类型  
  10.   
  11.     sendfile        on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。  
  12.       
  13.     keepalive_timeout  65; #长连接超时时间,单位是秒  
  14.   
  15.     gzip  on;#启用Gizp压缩  
  16.       
  17.     #服务器的集群  
  18.     upstream  netitcast.com {  #服务器集群名字   
  19.         server    127.0.0.1:18080  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  
  20.         server    127.0.0.1:28080  weight=2;  
  21.     }     
  22.   
  23.     #当前的Nginx的配置  
  24.     server {  
  25.         listen       80;#监听80端口,可以改成其他端口  
  26.         server_name  localhost;##############   当前服务的域名  
  27.   
  28.     location / {  
  29.             proxy_pass http://netitcast.com;  
  30.             proxy_redirect default;  
  31.         }  
  32.           
  33.   
  34.         error_page   500 502 503 504  /50x.html;  
  35.         location = /50x.html {  
  36.             root   html;  
  37.         }  
  38.     }  
  39. }  

  核心配置如下:


  


  到此配置完成,下面开始演示负载均衡。


  7、首先,我们启动Nginx:


  


  8、然后我们即可输入:localhost/index.jsp查看运行状况了


  第一次访问,发现访问的是Tomcat2上的程序:


  


  然后刷新,访问的还是Tomcat2上的程序:


  


  再刷新,发现变为了Tomcat1上的程序:


  


  再刷新,发现又变为了Tomcat2上的程序:


  


  到此,我们利用Nginx已经实现了负载均衡的Tomcat集群。我们不断的刷新,发现访问Tomcat2的概率大概是Tomcat1的2倍,这是因为我们在Nginx中配置的两台Tomcat的权重起的作用,如下图:


  



四、   总结

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为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进行匹配.可以进行重定向或者进行新的代理 负载均衡


感谢博主:写的简介明了,ranhttp://blog.csdn.net/wang379275614/article/details/47778201

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/46333.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用IT看世界杯——枯藤老树昏鸦,足球IT小龙虾

据相关媒体报道虽然国足无缘本届世界杯但中国却以另类的方式参与此次体育赛事。在与世界杯同期进行的机器人足球世界杯RoboCup上代表中国的浙江大学ZJUNlict队以4-0大胜卡耐基梅隆大学代表的美国队获得了RoboCup小型组的世界冠军。RoboCup是机器人领域最高水平的国际性赛事2013…

“正能量”抖音网红

一说到网红,人们很难把这个词和“正能量”联系到一起。网友们第一时间会想到的是“整容”、“蛇精脸”、“搔首弄姿”、“哗众取宠”等中性甚至是贬义词。 小编就是这群网友当中的其中一员,每次看到什么与“网红”沾上边,立马眉头一皱赶紧跳开…

大家都在刷的抖音短视频,原来是这些.......

作者 | 小F 来源 | 法纳斯特 之前有个朋友提到了抖音数据的获取。 问我这样的行业前景如何,说实话我哪知道啊... 不过也算是给我提供了一些分析思路,感谢。 所以本次就来分析一下抖音的那些大V们。 来探索一下什么样的视频在抖音里最受欢迎。 这里不得不…

抖音私信分享卡片如何制作,抖音私信卡片的优点。

最近很多人在问如何实现在抖音私信/客户群/粉丝群内将链接转换为图文卡片呢,如何生成自己的抖音私信卡片呢? 抖音私信卡片制作教程: 1、点击前往 【小狐工具箱】后台创建卡片,先选择不开启跳转; 2、进入 我的卡片详情…

抖音要做多久才有起色?厦门宝讯网捷

确实不可否认,抖音平台的流量是巨大的,所以,越来越多的朋友都准备在抖音平台上大展拳脚,实际操作的时候还是有一点力不从心,想要学习一下抖音要做多久才有起色?下面厦门宝讯网捷小编就来讲一下。 抖音账号的…

揭秘抖音最新玩法“抖音两元店”背后的套路。丨国仁网络资讯

既然选择了抖音直播这个行业,就要对直播这个行业有一份新的认知。你要把它当成你的一份职业,一份可以养活自己的工作。既然是工 作就要全身心的投入进去,学习和总结做直播的技巧和经验。还有 就是要有自己的定位,定位就是展示自己的一种方式。 选择属于自 己风格的直播方式…

凯育星辰:玩抖音,你不能碰的违禁词

抖音目前是公认的爆火短视频APP.之所以如此持续火遍大街小巷,跟每个文明的用户息息相关。那么你知道哪些语言是抖音上的违禁词吗?凯育星辰帮大家大致整理了以下这些: 涉及政治敏感问题的词,比如国家领导人、国徽、国旗、国歌、军旗…

被杭州某抖音代运营公司坑了

我是卢松松,点点上面的头像,欢迎关注我哦! 聚募海哥说:昨天有个朋友跟我诉苦,被杭州某抖音代运营公司坑了,之前谈好的销售目标只完成了20%,痛骂代运营真TM不靠谱。关于代运营这个事情&#xff…

吃瓜吃出的抖音滑块

目录 前言 一、出师不利 二、轻声安抚/抽丝剥茧 三、验证 总结 前言 因为实习的原因,离开了室友的我老是吃不到一手瓜,这可是件大事,每天就靠着这点精神粮食过活了,然后就有了采集抖音热门榜单的想法,说干就干&…

抖音哪些行为存在骗赞骗关注,会有什么违规处罚丨国仁网络

对于一些视频内容较差或者说没有核心内容的视频,如果仅仅可以通过一些求赞求关注的手段,就让视频获得大量的互动,从而获得大量的流量。大家可以想一下,这样对于优质视频和原创视频创作者是公平的吗? 因此当出现非常直…

一款抖音搞笑对话聊天记录生成软件

介绍: 想必大家经常在抖音上面看到很多搞笑的聊天记录什么的,其实那都不是真实的,都是用软件生成然后直接载图,用这个软件没事的是可以可以生成几个聊天记录做成视频,随便发一发也无妨,说不定还会上热门来…

成都待慕电商:抖音虚假宣传虚构被比较价格违规细则

为了保护抖音消费者权益,规范创作者商品分享推广秩序,抖音平台制定《「虚假宣传-虚构被比较价格」违规细则》。 来看详细内容: 一、什么是“被比较价格”? 被比较价格:指创作者通过价格比较的方式宣传商品价格优惠时&a…

剖析抖音爆火的美食探店大佬,揭秘他们的运营秘诀

最近在抖音有一位名叫@大LOGO吃垮北京 的美食创作者火出了圈。 靠着一系列美食探店短视频,成为抖音最近的爆款: 东方明珠酒店住一晚什么体验? 帝王蟹澳洲龙虾吃到爽要花多少钱? 黄晓明、关晓彤、杜海涛请客……明星们开的店味道怎么样? …… 靠着这些视频,这位@大LOGO…

一场直播帮你揭开保险代打卡背后的“猫腻”

你以为代打卡是在为打工人谋福利,事实上却成为了黑灰产的揽财工具。 以保险行业为例。 据顶象防御云业务安全情报中心对保险行业的反欺诈数据分析,打卡作弊严重的地区,保险行业参与考勤作弊的员工数量占比高达25%以上。据此推断&#xff0c…

抖音安心购有假货吗?四川鹰迪

无论是谁大家都不希望花大价钱在抖音买东西买到假货,抖音网购经验丰富的伙伴,多少都会掌握一些辨别商品真伪的方法,那抖音安心购的商品有假货吗?下面四川鹰迪小编就来讲一下。 抖音电商上线消费者权益产品“安心购”,推…

python培训抖音广告骗局

未来很难再出现学科类“网红”老师。 抖音正式治理教育培训广告,校外学科培训信息流投放将成历史 2021-11-23 00:54:06发布 来源:多知网 作者:Miracle 来源|多知网 作者|胡晓倩 图片来源|pixabay 11月19日,抖音电商新…

抖音是如何毁掉我们的!-- “奶嘴娱乐”使然

IT派助力深广创业,免费代发招聘信息,了解一下? 当你玩着王者荣耀,吃着鸡,刷着朋友圈,看着抖音的时候,背后有成千上万的人正在费尽心思让这些产品更具有粘性,他们的目的就是一个&…

重装系统之Office全家桶安装

工具下载: https://otp.landian.vip/zh-cn/ 下载完成是一个压缩包,解压后如图所示: 1. 双击打开Office Tool Plus.exe 2. 点击左侧管理,查看计算机已有 Office 版本,如果需要安装新的,需要将原来的卸载。…

“用户多次登录,账号冻结业务”功能实现(代码+详细注释)

目录 设计思路 分析 前后端交互接口 请求 响应 代码实现和详细注释 数据库设计 实体类设计 前后端交互 客户端开发 服务器开发 设计思路 分析 需求:当用户输入的用户名存在,并且密码输错 3 次以上,就触发账号冻结功能(冻…

PayPal账号被冻结怎么办?防止PayPal帐号冻结和解冻的经验

最近半年以来,因为PayPal收付款遭到账户冻结的用户不在少数。以至于很多用户举着横幅去PayPal上海办公楼前维权,这件事情闹得沸沸扬,也给我们广大用户敲响了警钟。 因为Paypal作为全球性的支付工具,速卖通等跨境电商的主要支付方式…