首页 > 系统相关 >Nginx 负载均衡配置

Nginx 负载均衡配置

时间:2023-08-21 14:22:17浏览次数:25  
标签:负载 请求 weight server Nginx 均衡 服务器

介绍:

 Nginx负载均衡的原理是把请求均匀地分摊给上游的应用服务器,这样即使某一个服务器宕机也不会影响请求的处理,或者当应用服务器扛不住了,可以随时进行扩容。Nginx在处理请求时,会根据负载均衡算法(如轮询、IP Hash等)将请求分发到不同的后端服务器上。Nginx支持多种负载均衡算法,可以根据实际需求进行选择。

负载均衡分类:HTTP负载均衡,TCP负载均衡,UDP负载均衡。

HTTP负载均衡

在NGINX中配置如下:

upstream back{
     server 192.168.1.1:80 weight=1;#默认权重1
     server 192.168.1.2:8088 weight=2;#传输请求2倍
     server 192.168.1.3:80 backup;#如果其它服务器不可用作为备份服务
}
server {
  location / {
    proxy_pass http://back;  
  }  
}

 TCP负载均衡

nginx.config配置如下:stream与http同级,可以在其它文件目录导入配置。

stream {
  include /etc/nginx/stream.conf.d/*.conf;     
}

etc/nginx/stream.conf.d/socket.conf配置如下:

  upstream socket_server {
          server 192.168.1.33:3306 weight=2;
          server 192.168.2.33:3306 backup;    
          
  }
  server {
       listen 3306;
       proxy_pass  socket_server;  
  }        

UDP负载均衡

注意:只需要添加udp标识。如果需要服务器来回传输多个数据包需要添加reuseport。

stream {
  upstream dns{
    server dns.test.com:321 weight=1;
    server dns.test2.com:321 backup;    
  }  
  server {
   listen  321 udp reuseport;
   proxy_pass dns;
  }
}

负载均衡的常用方式

  1. 轮询(默认):每个请求会按时间顺序逐一分配到不同的后端服务器。如果服务器down掉了,会自动剔除该服务器。此策略适合服务器配置相当,无状态且短平快的服务使用。
  2. 权重:根据后端服务器的权重值来分配请求,权重值越高的服务器接收到的请求越多。此策略适合服务器配置不同,有状态且需要动态调整负载的情况。指令名称:weight=xxx
  3. IP哈希:根据客户端IP地址进行哈希计算,然后将请求分配到相应的后端服务器。此策略适合需要限制访问源IP地址的情况。指令名称:ip_hash,此方式支持HTTP。受weight指令影响。
  4. 最小连接:将请求分配到当前连接数最少的后端服务器。此策略适合需要保证后端服务器的稳定性和可靠性的情况。指令名称:least_conn。受weight指令影响。
  5. 基于URI哈希:根据请求URI进行哈希计算,然后将请求分配到相应的后端服务器。此策略适合需要进行会话保持的情况。指令名称:hash,可选参数:consistent。受weight指令影响。
upstream backend{
  least_conn;
  server backend.test.com;    
  server backend.test2.com;  
}

被动健康检查

通过NGINX的max_fails指令超时重试次数(默认1次)和fail_timeout指令服务超时时间(默认10s),

upstream backend{
  least_conn;
  server backend.test.com max_fails=3 fail_timeout=3s;    
  server backend.test2.com max_fails=1 fail_timeout=5s;  
}

 

标签:负载,请求,weight,server,Nginx,均衡,服务器
From: https://www.cnblogs.com/Python-233/p/17631302.html

相关文章

  • 使用QGIS切片,使用Nginx反向代理本地瓦片,并在QGIS加载图层
    使用QGIS切片(以tif为例)新建QGIS工程(.qgz)将tif文件拖到图层区打开工具箱-->栅格工具-->生成XYZ瓦片(目录)设置参数:坐标范围、层级、瓦片格式、输出目录等,点击运行输出目录不选则默认会生成到C盘的临时目录运行完毕后记录出现这段文字,关闭对话框,点击右下角路径可以预览使用......
  • 如何利用Go编辑Nginx规则实现动态操作Nginx配置
    随着微服务的普及和容器化技术的发展,Nginx作为一款高性能的Web服务器和反向代理服务器,被广泛应用于各种场景。然而,传统的静态编辑Nginx配置文件的方式,往往无法满足动态修改配置的需求。本文将介绍如何使用Go语言编辑Nginx规则,实现动态操作Nginx配置。安装依赖库在开始之......
  • php 如何实现检测nginx配置的正确性
    在Web服务器的搭建过程中,Nginx是一款非常流行的开源软件,它能够快速、高效地处理HTTP请求。为了保证Nginx服务器的稳定性和安全性,我们需要定期检测Nginx配置文件的正确性,以便及时发现并解决问题。本文将介绍如何使用PHP实现检测nginx配置的正确性。安装php-fpm首先需要安装php-fpm,它......
  • 技术组件-nginx-docker安装
    安装搜索版本dockersearchnginx下载镜像dockerpullnginx:1.22创建目录mkdir-p/data/docker/data/nginx/confmkdir-p/data/docker/data/nginx/logmkdir-p/data/docker/data/nginx/htmlmkdir-p/data/docker/data/nginx/cer创建临时nginxdockerru......
  • Nginx中location语法有哪些?【杭州多测师_王sir】
     1、location 介绍location是Nginx中的块级指令(block directive),location指令的功能是用来匹配不同的url请求,进而对请求做不同的处理和响应,这其中较难理解的是多个location的匹配顺序,本文会作为重点来解释和说明。开始之前先明确一些约定,我们输入的网址叫做请求URI,nginx用请......
  • 2023.8.20 - nginx子域名简单判断案例
    server{listen80;server_namelvyehao.com;indexindex.htmlindex.htmindex.php;#设置子域名目录set$doc"lvyehao.com";if($host~^(\w+)\.lvyehao\.com){set$doc$1;}......
  • nginx+supervisor+flask
    #!/bin/bash#1.升级openSSLyuminstall-yzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgccmakelibffi-develyuminstallwget-ywgethttps://www.openssl.org/source/openssl-1.1.1q.tar.gz--no-check-certifica......
  • 解密Nginx与Elasticsearch的协同高效:深入理解反向代理与全文搜索
    在当今高度互联的网络环境中,后端技术的结合与优化对于构建高性能应用至关重要。本篇博客将聚焦于两个关键主题:Nginx反向代理和Elasticsearch全文搜索,通过深入分析实现原理和代码示例,展示它们如何协同工作以提升系统性能。Nginx反向代理的作用Nginx不仅仅是一款高性能的Web服务器,还......
  • 构建高性能后端:探秘Nginx与Elasticsearch的技术协同
    在如今的信息时代,高性能的后端技术对于应用的成功至关重要。本文将深入探讨两个关键技术领域:Nginx反向代理和Elasticsearch全文搜索。通过详细的原理解析和实际代码示例,揭示它们如何协同工作,为应用的性能和效率提供强大支持。Nginx反向代理:背后的原理Nginx不仅是一款优秀的Web服务......
  • Nginx与Elasticsearch:高性能后端的黄金组合
    在追求高性能的后端开发中,Nginx与Elasticsearch是两个不可或缺的技术利器。本文将深入剖析这两者,探讨它们的协同作用,通过深入原理解析和实用代码示例,揭示它们如何共同构建高效的后端系统。构建高性能后端的首选:Nginx反向代理Nginx不仅是一款出色的Web服务器,还是一款强大的反向代理......