负载均衡实例

预期效果:在浏览器中请求a.html,该请求可以被分发到2个tomcat服务器中,以此来分担压力;
 
1.配置tomcat
在linux服务器中安装2个tomcat;
修改tomcat目录下的server.xml,使tomcat1监听8080端口,tomcat2监听8081端口;
在两个tomcat的webapp目录中都放入文件夹test,test中放入a.html;
 
tomcat1中的a.html:访问时会显示8080
<h1>8080</h1>
 
tomcat2中的a.html:访问时会显示8081
<h1>8081</h1>
 
分别启动两个tomcat:进入tomcat的bin目录,执行./startup.sh
cd apache-tomcat-8080/bin
./startup.sh
 
查看是否启动成功:
ps -ef|grep tomcat
如果显示两个tomcat的进程信息则启动成功;
可以看到启动成功;tomcat1的进程id是 26707;tomcat2的进程id是26802;
 
2.在nginx中配置负载均衡
需要修改nginx安装目录下的conf目录中的nginx.conf;
 
1)负载均衡需要的配置
 
ngnix提供了几种负载均衡的分配策略:
1】轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
 
2】weight
weight 代表权,重默认为 1,权重越高被分配的客户端越多
指定轮询几率, weight 和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream server_pool{
    server 192.168.5.21 weight=10;
    server 192.168.5.22 weight=10;
}
 
3】ip_hash
每个请求按访问 ip 的 hash 结果分配,
这样每个访客固定访问一个后端服务器,可以解决 session 的问题。
也就是你用这个ip访问,会分配一个服务器,后面再次用这个ip访问的都是同一个服务器;
例如:
upstream server_pool{
    ip_hash;
    server 192.168.5.21:80;
    server 192.168.5.22:80;
}
 
4】fair (第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
例如:
upstream server_pool{
    server 192.168.5.21:80;
    server 192.168.5.22:80;
    fair;
}
 
2)实际操作
在nginx中为tomcat1和tomcat2配置负载均衡;
为了简单用默认策略;
本机ip可以用命令:ifconfig来查看;
 
首先http全局块中加上一个upstream + 自己起的名字;
表示进行负载均衡的服务器的列表;
    upstream myserver{
        server 192.168.10.112:8080;
        server 192.168.10.112:8081;
    }
 
在server块的location中加上一个规则:
        location / {
            proxy_pass http://myserver;
            root   html;
            index  index.html index.htm;
        }
这里的规则名字要和前面一样,例如这里叫myserver;
 
重启nginx让配置生效:
切换到sbin目录,执行重载命令
./nginx -s reload
 
3)测试效果
在本机访问a.html
http://192.168.10.112/test/a.html
结果:
刷新
可以看到:访问同一地址时,可以访问到不同的tomcat;
 
 
 
 
 
 
posted @ 2019-11-07 10:31  L丶银甲闪闪  阅读(267)  评论(0编辑  收藏  举报