首页 > 系统相关 >nginx负载均衡配置详解

nginx负载均衡配置详解

时间:2024-05-29 17:03:52浏览次数:8  
标签:负载 Nginx IP server nginx 详解 哈希 服务器

Nginx 的负载均衡功能是通过 upstream 模块来实现的,允许将客户端的请求分发到多个后端服务器,以达到分散负载、提高系统稳定性和响应速度的目的。下面是一些关于 Nginx 负载均衡配置的详细说明:

1. 定义 Upstream Block

首先,在 Nginx 配置文件(通常是 /etc/nginx/nginx.conf 或者 /etc/nginx/sites-available/default)中定义一个 upstream 块,用于指定一组后端服务器:

Nginx

1upstream backend {
2    server backend1.example.com;         # 直接指定IP或域名
3    server 192.168.1.10:8080 weight=2;  # 指定权重,weight参数表示该服务器被选择的权重比
4    server 192.168.1.11:8080;          # 默认权重为1
5    server backup.example.com backup;    # 备份服务器,当其他服务器不可用时启用
6}

2. 配置 Load Balancing 方法

Nginx 支持多种负载均衡策略,包括但不限于:

  • 轮询(Round Robin):默认策略,请求按顺序逐一分配到不同的后端服务器,这是最简单的负载分配方式。
  • 加权轮询(Weighted Round Robin):在轮询基础上,每个服务器可以设定一个权重值,权重高的服务器会被分配到更多的请求。
  • 最少连接(Least Connections):将请求分发给当前活动连接数最少的服务器。
  • IP哈希(IP Hash):基于客户端IP地址的哈希值来分配请求,确保来自同一IP的客户端请求总能被同一台后端服务器处理,适用于需要session粘性的场景。
  • 通用哈希(Generic Hash):类似于IP哈希,但可以根据任意HTTP头或变量进行哈希计算。

3. 在 Location 或 Server Block 中引用 Upstream

server 块内的 location 配置中,使用 proxy_pass 指令引用上面定义的 upstream 名称,实现请求转发:

Nginx

1server {
2    listen 80;
3    server_name example.com;
4
5    location / {
6        proxy_pass http://backend;  # 引用上游服务器组
7        proxy_set_header Host $host;
8        proxy_set_header X-Real-IP $remote_addr;
9        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
10    }
11}

4. 高级配置

  • 健康检查:虽然Nginx本身不直接支持健康检查,但可以通过第三方模块(如ngx_http_upstream_check_module)或外部工具(如Heartbeat、Keepalived)实现。
  • 会话持久化:使用IP哈希或其他哈希策略来维持客户端会话的一致性。
  • 故障转移:通过在 upstream 中定义 backup 参数的服务器,确保在主服务器群不可用时有备用服务器接管请求。

示例配置策略

  • 最少连接策略:需要安装并配置第三方模块,因为Nginx原生并不直接支持最少连接策略作为负载均衡算法。
  • 加权哈希策略:一般需要自定义脚本或逻辑来实现特定的哈希规则。

完成配置后,同样需要使用 nginx -t 测试配置文件的正确性,并通过 nginx -s reload 重载配置让更改生效。请注意,配置的具体细节可能会根据Nginx版本和所使用的模块有所不同。

标签:负载,Nginx,IP,server,nginx,详解,哈希,服务器
From: https://blog.csdn.net/jkzyx123/article/details/139300573

相关文章

  • 详解AI作画原理:从生成对抗网络到卷积神经网络
    人工智能(AI)作画是近年来备受瞩目的领域之一,它不仅为艺术创作带来了全新的可能性,也推动了计算机视觉和深度学习技术的发展。本文将深入探讨AI作画的原理,重点介绍生成对抗网络(GAN)和卷积神经网络(CNN)在作画中的应用,并探讨它们的工作原理以及在实际应用中的优劣势。一.生成对抗......
  • 企业如何打造通证经济生态闭环详解(上)
    通证经济生态要如何打造,企业怎样能快速切入通证领域?通证经济特性:1、数字权益证明。通证必须是以数字形式存在的权益凭证,它必须代表的是一种权利,一种固有和内在的价值。通证可以代表一切可以数字化的权益证明,从身份证到学历文凭,从货币到票据,从钥匙、门票到积分、卡券,从股票到......
  • 企业如何打造通证经济生态闭环详解(中)
    全球化企业通证积分管理系统中通证积分如何发行?首先提倡的是健康、绿色的通证资产,所有的通证资产不能通过与现金的买卖获得,是通过在平台完成对应的任务获得,是通过奖励的形式释放给用户。主要有哪些形式的任务可以释放通证积分呢,下面小编给大家一一道来。资产发行设置【投资板......
  • 企业如何打造通证经济生态闭环详解(下)
    一、原始账户:用户注册即生成【原始账户】【托管账户】。原始账户用于存储用户所获取的通证积分,原始账户的公钥与私钥由用户所有,安全、私密、去中心化。通过原始账户,用户可进行转账、收款的点对点传输,并可查看资产明细。托管账户:托管账户作为中转账户,私钥由平台代为保管,用户......
  • 机器学习策略篇:详解可避免偏差(Avoidable bias)
    可避免偏差如果希望学习算法能在训练集上表现良好,但有时实际上并不想做得太好。得知道人类水平的表现是怎样的,可以确切告诉算法在训练集上的表现到底应该有多好,或者有多不好,让我说明是什么意思吧。经常使用猫分类器来做例子,比如人类具有近乎完美的准确度,所以人类水平的错误是1%......
  • Python轻量级的插件框架库之pluginbase使用详解
    概要在软件开发中,插件系统是一个常见的需求。插件系统允许开发者动态加载和卸载功能模块,从而提高应用程序的灵活性和可扩展性。Python的pluginbase库是一个轻量级的插件框架,旨在简化插件系统的构建过程。pluginbase库提供了一套简单易用的API,使开发者能够快速集成插件功能。......
  • nginx日志按天分割
    原帖是这样的:nginx日志分割是比较常见的运维工作,关于这方面的文章也很多,通常无外乎两种做法:cron定期执行shell脚本对日志文件进行归档。使用专门日志归档logrotate。以上方式与nginx其实没有特别的关系。从nginx0.7.6版本开始,access_log的路径配置可以包含变量,我们以此......
  • 【Nginx】Referer配置
    server配置server{listen80;server_namelocalhost;add_headerX-Frame-OptionsSAMEORIGIN;add_headerReferer-Policyorigin;add_headerContent-Security-Policy"frame-ancestors'self'";add_headerX-Permi......
  • 深度学习笔记: 详解处理类别不平衡
    欢迎收藏Star我的MachineLearningBlog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star,有问题可以随时与我交流,谢谢大家!处理类别不平衡在欺诈检测、点击预测或垃圾邮件检测等机器学习用例中,通常会遇到标签不平衡的问题。根据具体用例,可......
  • SpringBoot如何使用日志Logback,及日志等级详解
    SpringBoot默认已经集成了SLF4J(SimpleLoggingFacadeforJava)作为日志的接口,以及Logback作为日志的实现。这意味着在大多数情况下,你无需做额外的配置即可开始记录日志。下面是一个简要的指南,包括如何在SpringBoot应用中使用SLF4J和Logback,以及一些实际的代码示例。默......