1.方案:三台tomcat服务器,经过nginx反向代理到tomcat服务器上面来达到负载均衡的效果html
2.环境:腾讯云linux版本服务器+nginx+3个tomcat服务器linux
3.首先购买一台腾讯云服务器linux版(学生价格一个月十元左右)nginx
4.安装nginxweb
5.安装tomcat和jdk算法
6.由于咱们须要三台tomcat服务器,因此安装一台以后再复制两份windows
命令:cp -a 原tomcat名字 新tomcat名字浏览器
注意:cp 是复制意思 cp -a 是保留原文件属性的前提下复制文件 tomcat
这里咱们复制两台命名为tomcat2 、tomcat3服务器
7.下面咱们更改tomcat端口,目前三个tomcat端口都是8080,咱们将tomcat二、tomcat3改成808一、8082session
更改端口在conf/server.xml中修改三个地方:以tomcat修改成8081为例(8082再也不赘述)
第一个:
第二个:
第三个:
8.如今咱们三个tomcat访问端口分别为8080、808一、8082,下面配置nginx负载均衡
nginx安装目录通常是usr/local/nginx ,因此修改配置文件usr/local/nginx/conf/nginx.conf
配置好以后将三个tomcat所有启动,启动方法和windows下启动方法同样,而后启动nginx(参考另外一篇nginx的文章),在浏览器中输入http://140.143.75.62访问
那这个时候有人问了,怎么知道负载均衡效果有没有起做用,ok这里咱们修改一下这个tomcat默认页面:
对tomcat2/webapps/ROOT/index.jsp进行一些修改,修改完访问效果以下:
而后刷新一下浏览器以下图:
而后再刷新一下:
这个时候看到了吧,三个tomcat服务器进行负载均衡,这是最简单的默认的负载均衡方法(轮询法),轮询就是从上到下一次访问个人三个tomcsat
负载均衡2(权重法):
upstream server1{
server 140.143.75.62:8080 weight=1;
server 140.143.75.62:8081 weight=3;
server 140.143.75.62:8082 weight=5;
}
权重法意思是访问一次8080,而后三次8081,而后五次8082
负载均衡3(IP Hash):配置ip绑定,只要访问一次以后,固定某个ip访问
upstream server1{
ip_hash;
server 140.143.75.62:8080 ;
server 140.143.75.62:8081 ;
server 140.143.75.62:8082 ;
}
可以解决session共享的问题
--------------------------------------------------------------------------------------------------------------------------
下面两种为第三方的,了解便可:
负载均衡4(fair配置):按上游服务器的响应时间来分配请求。响应时间短的优先分配
upstream server1{
server 140.143.75.62:8080 ;
server 140.143.75.62:8081 ;
server 140.143.75.62:8082 ;
fair;
}
负载均衡5(url_hash配置):按照访问的url的hash结果来分配请求,使每个url定向到同一个上游服务器。注意:在upstream中加入hash语句。server语句中不能写入weight等其余的參数,hash_method是使用的hash算法。
upstream server1{
server 140.143.75.62:8080 ;
server 140.143.75.62:8081 ;
server 140.143.75.62:8082 ;
hash $request_uri;
hash_method crc32;
}
感兴趣的小伙伴能够扫码关注下公众号哦,公众号会分享高质量的技术文章哦