nginx怎么配置多台机器实现负载均衡

在这里插入图片描述

先尝试配置一个简单的服务脚本
要配置两台机器实现负载均衡,你可以使用nginx作为反向代理服务器。下面是一个简单的示例配置:

假设你有两台服务器,它们的IP地址分别是192.168.1.100和192.168.1.101。

首先,安装nginx并创建一个新的配置文件,例如 load_balancer.conf。

# load_balancer.conf# 定义upstream,指定服务器列表
upstream backend {server 192.168.1.100;server 192.168.1.101;
}# 配置负载均衡策略
# 在这个例子中,我们使用默认的轮询策略
# 其他常见的负载均衡策略还包括ip_hash、least_conn等
# 你可以根据需求选择合适的策略
# 更多详情请查看nginx文档:http://nginx.org/en/docs/http/ngx_http_upstream_module.html
server {listen 80;server_name example.com;location / {proxy_pass http://backend;# 如果你需要传递客户端的IP地址到后端服务器,可以使用下面的配置# proxy_set_header X-Real-IP $remote_addr;# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# proxy_set_header Host $http_host;# proxy_set_header X-NginX-Proxy true;# proxy_redirect off;}
}

保存文件后,将其链接到nginx的配置目录,通常是 /etc/nginx/sites-enabled/。

sudo ln -s /etc/nginx/sites-available/load_balancer.conf /etc/nginx/sites-enabled/

接着,测试nginx配置是否正确:

sudo nginx -t

如果输出 syntax is okay,则表示配置正确。然后重启nginx服务使配置生效:

sudo systemctl restart nginx

负载均衡策略

1. 轮询(Round Robin):
优点:

  1. 简单,容易实现。
  2. 均匀地分配请求到各个后端服务器上。

缺点:

  1. 如果后端服务器的性能不均衡,可能会导致负载不均衡。
  2. 无法考虑后端服务器的实际负载情况。

脚本:

upstream backend {server 192.168.1.100;server 192.168.1.101;server 192.168.1.102;
}server {listen 80;server_name example.com;location / {proxy_pass http://backend;}
}

2. IP哈希(IP Hash):
优点:

将特定客户端的请求始终发送到同一台后端服务器,适合需要保持会话一致性的应用场景,如会话状态管理。

缺点:

可能导致负载不均衡,特别是在有限数量的客户端IP地址上。

脚本:

upstream backend {ip_hash;server 192.168.1.100;server 192.168.1.101;
}server {listen 80;server_name example.com;location / {proxy_pass http://backend;}
}

3.最小连接(Least Connections):
优点:

将请求发送到当前连接数最少的服务器,有助于避免负载不均衡。

缺点:

如果后端服务器的响应时间不同,可能会导致负载不均衡。

脚本:

upstream backend {least_conn;server 192.168.1.100;server 192.168.1.101;
}server {listen 80;server_name example.com;location / {proxy_pass http://backend;}
}

4.加权轮询(Weighted Round Robin):
优点:

可以根据服务器的性能分配不同的权重,使得性能较高的服务器能够处理更多的请求。

缺点:

需要手动调整权重,维护成本较高。

脚本:

upstream backend {server 192.168.1.100 weight=3;server 192.168.1.101 weight=2;
}server {listen 80;server_name example.com;location / {proxy_pass http://backend;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/542697.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【DL经典回顾】激活函数大汇总(一)(Sigmoid Tanh ReLU Leaky ReLU PReLU附代码和详细公式)

激活函数大汇总(一)(Sigmoid & Tanh & ReLU & Leaky ReLU & PReLU附代码和详细公式) 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智…

【C++】string学习 — 手搓string类项目

手搓string项目 1 string类介绍2 功能描述3 代码实现3.0 基础框架3.1 构造函数 和 析构函数3.2 流操作符重载 和 尾插扩容3.4 运算符重载3.5 实用功能3.6 迭代器模拟 总结这里提供一下源代码:Thanks♪(・ω・)ノ谢谢阅读!…

mybatis缓存(学习笔记17)

1、什么是缓存:存在内存中的临时数据 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘(关系数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决…

分布式与集群,二者区别是什么?

🐓分布式 分布式系统是由多个独立的计算机节点组成的系统,这些节点通过网络协作完成任务。每个节点都有自己的独立计算能力和存储能力,可以独立运行。分布式系统的目标是提高系统的可靠性、可扩展性和性能。 分布式服务包含的技术和理论 负…

EPSON X1G004481000300 SG7050CAN晶体振荡器

在射频拉远单元(RRU)设计中,一般需要用到以太网PHY芯片发送和接收以太网的数据帧,与主控芯片进行网络数据交互,为保证以太网PHY芯片正常工作,一般需要选择25MHz标准频率的有源晶振用于以太网PHY芯片时钟设计,为保证射频拉远单元(RRU&#xff…

面向对象(下)

目录 01、static1.1、static的使用1.2、static应用举例1.3、单例(Singleton)设计模式 02、main方法的语法03、类的成员之四:代码块04、关键字:final05、抽象类与抽象方法5.1、多态的应用:模板方法设计模式(TemplateMethod) 06、接口(interfac…

《Learning Hierarchical Modular Networks for Video Captioning》论文笔记

论文信息 原文链接: Learning Hierarchical Modular Networks for Video Captioning | IEEE Journals & Magazine | IEEE Xplore 原文代码 GitHub - MarcusNerva/HMN: [CVPR2022] Official code for Hierarchical Modular Network for Video Captioning. Ou…

数字多空策略(实盘+回测+数据)

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学,点击下方链接报名: 量化投资速成营(入门课程) Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

AI智能分析网关V4将HTTP消息推送至安防监控视频汇聚EasyCVR平台的操作步骤

TSINGSEE青犀视频智能分析网关V4内置了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为等实时检测分析,上报识别结果,并能进行语音告警播放。硬件管理平台支持RTSP、GB28181协议、以及厂家私有协议接入,可兼容市面上常…

熔断降级的方案实现

熔断降级的方案实现 Spring Cloud Netflix Hystrix 提供线程隔离、服务降级、请求缓存、请求合并等功能可与Spring Cloud其他组件无缝集成官方已宣布停止维护,推荐使用Resilience4j代替 Spring Cloud Resilience4j 轻量级服务熔断库 提供类似于Hystrix的功能 具有更…

谁将是RAG的头部玩家?

开篇 菩提修妙树,接引证法源,屠龙万仙阵,玉虚祭封神。 混战是国内技术圈的常态,在众仙跟风与追捧的大潮中,如何看清方向至关重要,决定谁最终将封神。 语言大模型(LLM),多模态(MM),…

吴恩达deeplearning.ai:使用多个决策树随机森林

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 文章目录 为什么要使用树集合使用多个决策树(Tree Ensemble)有放回抽样随机森林XGBoost(eXtream Gradient Boosting)XGBoost的库实现何时使用决策树决策树和树集合神经网络 使用单个决策树的…