nginx 80端口转发失效_nginx-负载均衡

背景

不管是否很大型的系统,采用负载均衡的意义都是相当滴重要。

如果是大型系统,毫无疑问当系统负载能力达到一个服务所能承受的极限时,用多个服务来分摊用户请求的压力是非常合理的想法。这就好比汽车站刚开始只有一辆汽车,当人实在是太多时,最简单拓展运输能力的方式就是再来一辆汽车。

如果是小型系统,负载均衡也是相当重要,最基本的需求,当你的代码需要升级时,要求系统运行不能停止,如果只有一个服务在跑,那就没办法了。但是如果有负载均衡,完全可以在负载比较低时,一台一台的更新。

综上所述,无论你是大神架构师,还是虾米程序员,都应该对负载均衡有些了解。

这其中,nginx实现负载均衡那是相当简单,而且高效,厉害了。

原理

原理灰常简单,nginx监听一个80端口,然后将请求转发到不同服务去处理即可。

注意此处不同服务可能是一台服务器上的不同端口的web服务,也可以是不同服务器上的各个端口的web服务,都可以。

原理如此简单,实现也很容易,详细说下。

搭建实践环境

无非是安装一个nginx,用来监听请求,安装两个tomcat,用来测试是否实现了负载均衡。

具体安装nginx和两个tomcat的过程此处不再一一细讲,前面的章节说的很明白了。

我们要的效果是nginx在80端口如图:

fcf2432575f6f12060e2a8f4a0ff85d4.png

两个tomcat分别在8012和8022端口服务,注意为了区分是哪个tomcat上的网页,我首页改了下(位置在tomcat/webapps/ROOT/index.jsp)

949f9aede06e943470ce63bea5e4625a.png
6d18bd5921e389bf1897f016ecfa6366.png

配置nginx负载均衡

很简单,如下,我感觉都无需解释了:

首先nginx server监听80端口,然后将请求转发到mytomcats。

mytomcats这个upstream有两个权重一样的服务器负责接收请求,也就是如果有100个请求,那这老哥俩一人500个请求呗。这哥俩就是8012端口和8022端口的服务。

当然如果你想负载均衡到别的机器上,可以将127.0.0.1改成别的IP或者域名。

06c9ef897c3b5ac9ee556534b721c5a0.png

重新加载下nginx,命令为:nginx -s reload,然后看效果,就会发现请求同一个地址,有时候是tomcat1响应,有时候是tomcat2响应。当然不是严格的第一次tomcat1响应,第二次就tomcat2响应,毕竟咱们的请求来自同一台计算机,nginx肯定有比较复杂的考量以提高效率,比如IP相似的机器的请求优先安排同一台服务器响应。

873ba26730339a0f78d7904e5843ad86.png
87b0cd82e0723eb8875a2d10cb4922d9.png

总结与展望

本篇简明但不算扼要的说了nginx如何实现负载均衡,当然nginx负载均衡有很多策略,单独说策略没有意思,下篇还是结合实际场景说下如何来设置具体策略。

点击查看更多内容

作者:慕课熊猫

链接:https://www.imooc.com/article/275605

来源:慕课网

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值