1. 首页
  2. Nginx私房菜

如何Nginx实现负载均衡

本篇文章介绍Nginx实现负载均衡,本文使用Nginx和两个SpringBoot简单Web应用实现。

1.准备工作。

结合本文场景,需要安装Nginx和Java环境(运行SpringBoot项目)。

1.1 关于Linux系统安装Nginx可以参考我的文章—(传送门)。

1.2 由于只是测试,SpringBoot只是映射了根路径,端口分别是10001和10002,分别返回demo1和demo2字符串作为区分。

2.Nginx负载均衡的集中方式介绍

2.1 轮询

轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训10001服务和10002服务。


upstream dalaoyang-server { server localhost:10001; server localhost:10002; } //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

2.2 权重

指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后10002服务的访问比率会是10001服务的二倍。


upstream dalaoyang-server { server localhost:10001 weight=1; server localhost:10002 weight=2; } //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

2.3 iphash

每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。


upstream dalaoyang-server { ip_hash; server localhost:10001 weight=1; server localhost:10002 weight=2; } //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

2.4 最少连接

将请求分配到连接数最少的服务上。


upstream dalaoyang-server { least_conn; server localhost:10001 weight=1; server localhost:10002 weight=2; } //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

2.5 fair

按后端服务器的响应时间来分配请求,响应时间短的优先分配。


upstream dalaoyang-server { server localhost:10001 weight=1; server localhost:10002 weight=2; fair; } //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

3.Nginx配置

以轮训为例,如下是nginx.conf完整代码。


worker_processes 1; events { worker_connections 1024; } http { upstream dalaoyang-server { server localhost:10001; server localhost:10002; } server { listen 10000; server_name localhost; location / { proxy_pass http://dalaoyang-server; proxy_redirect default; } } } //JS中文网 – 前端进阶资源分享 https://www.javascriptc.com/ 趣聊CSS系列

4.测试

重启nginx,第一次访问http://localhost:10000如图所示,

如何Nginx实现负载均衡

在次访问如图所示

如何Nginx实现负载均衡

如果要修改负载均衡算法修改对应upstream模块即可。

作者:dalaoyang
链接:https://juejin.im/post/6844903749635293192

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「IT平头哥联盟」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

本文著作权归作者所有,如若转载,请注明出处

转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com

标题:如何Nginx实现负载均衡

链接:https://www.javascriptc.com/4227.html

« 如何正确Nginx实现动静分离
064. 最小路径和»
Flutter 中文教程资源

相关推荐

QR code