nginx负载均衡实例

实现效果
浏览器输入192.168.207.129,实现负载均衡的效果,平均分配到两个tomcat上面。
ip:192.168.207.129
tomcat1端口:8080
tomcat2端口:8090
在一台虚拟机实现负载均衡。
如何搭建tomcat,及搭建nginx,百度一大把这边主要做一些负载均衡的配置。
1、测试访问nginx及tomcat是否能正常访问
测试nginx
在这里插入图片描述
测试tomcat1端口8080
在这里插入图片描述
测试tomcat2端口8090
在这里插入图片描述
2、配置nginx实现负载均衡
vim nginx.conf
在这里插入图片描述
upstream myserver{
server 127.0.0.1:8080 weight=1; #添加tomcat1服务器的ip加端口
server 127.0.0.1:8090 weight=1; #添加tomcat2服务器的ip加端口
}

server {
listen 80;
server_name 192.168.207.129; #使用ip访问我们就设置为ip

location / {
        proxy_pass http://myserver/test/;       #添加负载均衡规则
        root   html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

}

保存退出,然后重启nginx
3、测试访问
第一次访问
在这里插入图片描述
第二次访问
在这里插入图片描述
两次刷新结果不同,说明已经分发至两台服务器。
模拟当一台tomcat出现故障时是否能提供服务。(关闭一台tomcat测试访问)
在这里插入图片描述
当把tomcat1关闭时,还是可以提供访问。nginx负载均衡配置完成,实现负载均衡功能。

扩展
负载均衡的作用就是将不同的请求分发至不同服务器,减轻单台的压力,当其中一台出现故障也不会导致业务中断。

nginx负载均衡的几种方式
本次实验所使用nginx负载均衡的“轮询”方式,当后端的tomcat挂掉时能自动的剔除。我们设置轮询的都为1说明是平均分配,也就等同于默认的策略。
upstream myserver{
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8090 weight=1;
}

可以指定轮询的几率,让8080端口的服务器接收请求多一些,8090接受请求少一些。
upstream myserver{
server 127.0.0.1:8080 weight=3;
server 127.0.0.1:8090 weight=1;
}

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

ip_hash
按ip的hash的结果分配,当客户第一次访问了我们8080端口时,第二次在进行访问时会通过哈希算法分配至8080端口服务器。客户定于就固定访问这个服务器,解决session问题。
这样就不会出现用户第一次登陆8080端口服务器,然后刷新了页面跳至另一台服务器,这样用户第一次登陆的信息就会丢失。
upstream myserver{
server 127.0.0.1:8080;
server 127.0.0.1:8090;
ip_hash;
}

fair
根据服务器的响应速度进行分配,就是哪台服务器的响应速度快就分配至哪台服务器。
upstream myserver{
server 127.0.0.1:8080;
server 127.0.0.1:8090;
fair;
}

url_hash(通过请求url进行hash,再通过hash值选择后端server)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。、
upstream myserver{
server 127.0.0.1:8080;
server 127.0.0.1:8090;
hash $request_uri;
}

server {
listen 80;
server_name 192.168.207.129;
location /image {
proxy_pass http://myserver;
}
}
当请求url为/image时,会走url_hash;同样配置了upstream模块,hash $request_uri表明了是按照url规则进行hash策略。

upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:
down 表示单前的server暂时不参与负载
upstream myserver{
server 127.0.0.1:8080;
server 127.0.0.1:8090 down;
ip_hash;
}

backup 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
upstream myserver{
server 127.0.0.1:8080;
server 127.0.0.1:8090 backup;
ip_hash;
}
欢迎大家阅读,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值