当前位置: 首页 > news >正文

使用Nginx进行负载均衡

什么是负载均衡

Nginx是一个高性能的开源反向代理服务器,也可以用作负载均衡器。通过Nginx的负载均衡功能,可以将流量分发到多台后端服务器上,实现负载均衡,提高系统的性能、可用性和稳定性。

如下图所示:
在这里插入图片描述

Nginx负载均衡策略

Nginx内置负载均衡主要分为以下种类

轮询

轮询简单理解就是将请求在机器之间进行平均分配,在轮询这种方式中,也有分为两类轮询策略
1、普通轮询
可以理解为各个服务器的权重占比都为1,请求会轮流进入这些服务器
2、权重轮询
在轮询基础上分配服务器的权重占比。比如服务器1配置2,服务器2配置1,那么最终请求分配到两台机器的数量会趋近于服务器1:服务器2=2:1
具体配置方式如下

http {# 普通轮询配置# 定义转发分配规则upstream myapp1 {server srv1.com; # 要转发到的服务器,如ip、ip:端口号、域名、域名:端口号server srv2.com:8088;server 192.168.0.100:8088;}# 权重轮询配置# 定义转发分配规则upstream myapp1 {server srv1.com weight=1; # 该台服务器接受1/6的请求量server srv2.com:8088 weight=2; # 该台服务器接受2/6的请求量server 192.168.0.100:8088 weight=3; # 该台服务器接受3/6的请求量;
}server {listen 80; # nginx监听的端口location / {# 使用myapp1分配规则,即刚自定义添加的upstream节点# 将所有请求转发到myapp1服务器组中配置的某一台服务器上proxy_pass http://myapp1; }}
}

iphash
对客户的请求的IP进行hash操作,根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的
这个方法确保了相同的客户端的请求一直发送到相同的服务器,这样每个访客都固定访问一个后端服务器。如用户需要分片上传文件到服务器下,然后再由服务器将分片合并,这时如果用户的请求到达了不同的服务器,那么分片将存储于不同的服务器目录中,导致无法将分片合并,该场景则需要使用ip hash策略。
需要注意的是,ip_hash不能与backup同时使用,另外当有服务器需要剔除,必须手动down掉,此模式适合有状态服务,比如session。
具体配置方式如下:

# 定义转发分配规则
upstream myapp1 {ip_hash; # #保证每个请求固定访问一个后端服务器server srv1.com;server srv2.com:8088;server 192.168.0.100:8088;
}

最少连接
轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果,适合请求处理时间长短不一造成服务器过载的情况。
具体配置方式如下:

# 定义转发分配规则
upstream myapp1 {least_conn; # 把请求分派给连接数最少的服务器server srv1.com;server srv2.com:8088;server 192.168.0.100:8088;
}

Nginx安装

具体可以看我之前的一篇文档:Nginx安装以及卸载教程

http://www.lryc.cn/news/317532.html

相关文章:

  • 什么护眼台灯效果好?热门护眼台灯全方位测评推荐
  • 云上三问,迈向智能时代的关键
  • 【网络安全】手机不幸被远程监控,该如何破解,如何预防?
  • 每日OJ题_哈希表④_力扣219. 存在重复元素 II
  • 42.坑王驾到第八期:uniCloud报错
  • Linux常用操作命令
  • OpenCV的常用数据类型
  • STM32串口通信—串口的接收和发送详解
  • 《汇编语言》第3版 (王爽) 第14章
  • Axure原型设计项目效果 全国职业院校技能大赛物联网应用开发赛项项目原型设计题目
  • 力扣串题:字符串中的第一个唯一字母
  • 【五、接口自动化测试】GET/POST 请求区别
  • HDOJ 2036
  • 2.案例、鼠标时间类型、事件对象参数
  • OPENCV(0-1之0.0)
  • easyrecovery破解版百度云(含Mac/Win版)以及EasyRecovery可以恢复哪些设备
  • [2023年]-hadoop面试真题(一)
  • Kubernetes kafka系列 | k8s部署kafka+zookeepe集群
  • ip广播智慧工地广播喊话号角 IP网络号角在塔吊中应用 通过寻呼话筒预案广播
  • B端系统优化,可不是换个颜色和图标,看看与大厂系统的差距。
  • 【LeetCode热题100】240. 搜索二维矩阵 II
  • three.js 鼠标左右拖动改变玩家视角
  • Pycharm jupyter server process exited with code 1
  • ubuntu 20.04 Python pip 配置 pip.conf
  • GPT-4.5 Turbo意外曝光,最快明天发布?OpenAI终于要放大招了!
  • Ubuntu 中 desktop-amd64 和 live-server-amd64 的区别
  • 第10集《天台教观纲宗》
  • 每日学习笔记:C++ STL 的forward_list
  • 【Java,Redis】Redis 数据库存取字符串数据以及类数据
  • OpenCV 图像重映射函数remap()实例详解