(七)配置nginx的负载均衡

告别折腾:用Qt + MinIO C++ SDK快速构建本地文件管理客户端(Windows实测) 本文详细介绍了如何在Windows平台上使用Qt和MinIO C++ SDK快速构建本地文件管理客户端。通过MinIO的轻量级存储方案和Qt的跨平台GUI能力,开发者可以轻松实现文件上传、下载和列表查看等核心功能,避免复杂的底层开发。文章包含环境配置、项目搭建、功能实现和界面优化等完整教程,帮助开发者30分钟内完成可用Demo。 阅读详情

负载均衡

 

nginx的负载均衡有4种模式:

1)、轮询(默认) 
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
2)、weight 
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
2)、ip_hash 
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 
3)、fair(第三方) 
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 
4)、url_hash(第三方)

配置方法:

打开nginx.cnf文件

在http节点下添加upstream节点:

1

2

3

4

upstream webname { 

  server 192.168.0.1:8080; 

  server 192.168.0.2:8080; 

}

其中webname是自己取的名字,最后会通过这个名字在url里访问的,像上面这个例子一样什么都不加就是默认的轮询,第一个请求过来访问第一个server,第二个请求来访问第二个server。依次轮着来。

1

2

3

4

upstream webname { 

  server 192.168.0.1:8080 weight 2; 

  server 192.168.0.2:8080 weight 1; 

}

这个weight也很好理解,权重大的被访问的概率就大,上面这个例子的话,访问2次server1,访问一次server2

1

2

3

4

5

upstream webname { 

  ip_hash; 

  server 192.168.0.1:8080; 

  server 192.168.0.2:8080; 

}

ip_hash的配置也很简单,直接加一行就可以了,这样只要是同一个ip过来的都会到同一台server上

然后在server节点下进行配置:

1

2

3

4

5

6

location /name { 

    proxy_pass http://webname/name/; 

    proxy_http_version 1.1; 

    proxy_set_header Upgrade $http_upgrade; 

    proxy_set_header Connection "upgrade"; 

}

proxy_pass里面用上面配的webname代替了原来的ip地址。

这样就基本完成了负载均衡的配置。

下面是主备的配置:

还是在upstream里面

1

2

3

4

upstream webname { 

  server 192.168.0.1:8080; 

  server 192.168.0.2:8080 backup; 

}

设置某一个节点为backup,那么一般情况下所有请求都访问server1,当server1挂掉或者忙的的时候才会访问server2

1

2

3

4

upstream webname { 

  server 192.168.0.1:8080; 

  server 192.168.0.2:8080 down; 

}

设置某个节点为down,那么这个server不参与负载。

实现实例

负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。

负载均衡

先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。

测试环境 
由于没有服务器,所以本次测试直接host指定域名,然后在VMware里安装了三台CentOS。

测试域名 :a.com

A服务器IP :192.168.5.149 (主)

B服务器IP :192.168.5.27

C服务器IP :192.168.5.126

部署思路 
A服务器做为主服务器,域名直接解析到A服务器(192.168.5.149)上,由A服务器负载均衡到B服务器(192.168.5.27)与C服务器(192.168.5.126)上。

域名解析

由于不是真实环境,域名就随便使用一个a.com用作测试,所以a.com的解析只能在hosts文件设置。

打开:C:WindowsSystem32driversetchosts

在末尾添加

1

192.168.5.149    a.com

保存退出,然后启动命令模式ping下看看是否已设置成功

从截图上看已成功将a.com解析到192.168.5.149IP

A服务器nginx.conf设置 
打开nginx.conf,文件位置在nginx安装目录的conf目录下。

在http段加入以下代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

upstream a.com {

      server  192.168.5.126:80;

      server  192.168.5.27:80;

}

 

server{

    listen 80;

    server_name a.com;

    location / {

        proxy_pass        http://a.com;

        proxy_set_header  Host            $host;

        proxy_set_header  X-Real-IP        $remote_addr;

        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

    }

}

保存重启nginx

B、C服务器nginx.conf设置 
打开nginx.confi,在http段加入以下代码

1

2

3

4

5

6

server{

    listen 80;

    server_name a.com;

    index index.html;

    root /data0/htdocs/www;

}

保存重启nginx

测试 
当访问a.com的时候,为了区分是转向哪台服务器处理我分别在B、C服务器下写一个不同内容的index.html文件,以作区分。

打开浏览器访问a.com结果,刷新会发现所有的请求均分别被主服务器(192.168.5.149)分配到B服务器(192.168.5.27)与C服务器(192.168.5.126)上,实现了负载均衡效果。

B服务器处理页面

C服务器处理页面

假如其中一台服务器宕机会怎样? 
当某台服务器宕机了,是否会影响访问呢?

我们先来看看实例,根据以上例子,假设C服务器192.168.5.126这台机子宕机了(由于无法模拟宕机,所以我就把C服务器关机)然后再来访问看看。

访问结果:

我们发现,虽然C服务器(192.168.5.126)宕机了,但不影响网站访问。这样,就不会担心在负载均衡模式下因为某台机子宕机而拖累整个站点了。

如果b.com也要设置负载均衡怎么办? 
很简单,跟a.com设置一样。如下:

假设b.com的主服务器IP是192.168.5.149,负载均衡到192.168.5.150和192.168.5.151机器上

现将域名b.com解析到192.168.5.149IP上。

在主服务器(192.168.5.149)的nginx.conf加入以下代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

upstream b.com {

      server  192.168.5.150:80;

      server  192.168.5.151:80;

}

 

server{

    listen 80;

    server_name b.com;

    location / {

        proxy_pass        http://b.com;

        proxy_set_header  Host            $host;

        proxy_set_header  X-Real-IP        $remote_addr;

        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

    }

}

保存重启nginx

在192.168.5.150与192.168.5.151机器上设置nginx,打开nginx.conf在末尾添加以下代码:

1

2

3

4

5

6

server{

    listen 80;

    server_name b.com;

    index index.html;

    root /data0/htdocs/www;

}

保存重启nginx

完成以后步骤后即可实现b.com的负载均衡配置。

主服务器不能提供服务吗? 
以上例子中,我们都是应用到了主服务器负载均衡到其它服务器上,那么主服务器本身能不能也加在服务器列表中,这样就不会白白浪费拿一台服务器纯当做转发功能,而是也参与到提供服务中来。

如以上案例三台服务器:

A服务器IP :192.168.5.149 (主)

B服务器IP :192.168.5.27

C服务器IP :192.168.5.126

我们把域名解析到A服务器,然后由A服务器转发到B服务器与C服务器,那么A服务器只做一个转发功能,现在我们让A服务器也提供站点服务。

我们先来分析一下,如果添加主服务器到upstream中,那么可能会有以下两种情况发生:

1、主服务器转发到了其它IP上,其它IP服务器正常处理;

2、主服务器转发到了自己IP上,然后又进到主服务器分配IP那里,假如一直分配到本机,则会造成一个死循环。

怎么解决这个问题呢?因为80端口已经用来监听负载均衡的处理,那么本服务器上就不能再使用80端口来处理a.com的访问请求,得用一个新的。于是我们把主服务器的nginx.conf加入以下一段代码:

1

2

3

4

5

6

server{

    listen 8080;

    server_name a.com;

    index index.html;

    root /data0/htdocs/www;

}

重启nginx,在浏览器输入a.com:8080试试看能不能访问。结果可以正常访问

既然能正常访问,那么我们就可以把主服务器添加到upstream中,但是端口要改一下,如下代码:

1

2

3

4

5

upstream a.com {

      server  192.168.5.126:80;

      server  192.168.5.27:80;

      server  127.0.0.1:8080;

}

由于这里可以添加主服务器IP192.168.5.149或者127.0.0.1均可以,都表示访问自己。

重启Nginx,然后再来访问a.com看看会不会分配到主服务器上。

主服务器也能正常加入服务了。

最后 
一、负载均衡不是nginx独有,著名鼎鼎的apache也有,但性能可能不如nginx。

二、多台服务器提供服务,但域名只解析到主服务器,而真正的服务器IP不会被ping下即可获得,增加一定安全性。

三、upstream里的IP不一定是内网,外网IP也可以。不过经典的案例是,局域网中某台IP暴露在外网下,域名直接解析到此IP。然后又这台主服务器转发到内网服务器IP中。

四、某台服务器宕机、不会影响网站正常运行,Nginx不会把请求转发到已宕机的IP上

Nginx负载均衡轮询配置 1、配置环境(需要三台服务器) 负载均衡服务器(主)192.168.43.130 后端服务器A 192.168.43.131 后端服务器B 192.168.43.132 2、开启Nginx:/usr/local/nginx/sbin/nginx 查看端口:lsof -i :80 关闭selinux:/etc/selinux/config 修改配置文件:将SELINUX=ebforcing改为SELINUX=disabled ge... 阅读详情

相关推荐

QT/C++实现健壮HTTP POST客户端:从基础到异常处理与性能优化

HTTP协议作为客户端与服务器通信的基石,其POST方法在数据提交、API交互等场景中扮演着核心角色。其工作原理基于请求-响应模型,通过封装TCP连接与协议细节,为应用层提供了简洁的数据传输接口。在C++桌面与嵌入式开发中,直接使用底层Socket实现HTTP不仅复杂且易出错,而利用框架进行高级封装能显著提升开发效率与代码健壮性。QT框架的`QNetworkAccessManager`等组件正是为此设计,它通过信号槽机制提供异步网络编程模型,有效管理连接与协议解析。一个健壮的HTTP客户端需要妥善处理网络波

weixin_29176179的博客 384

nginx(二十七)长连接和短连接

含义: nginx向这'一组'upstream中,最多'保持'多少个'空闲的tcp连接'用于'http keepalive'请求。一个是'内置的ngx_http_chunked_filter_module',是一个filter的模块,是'默认编译'进去的。# proxy_set_header Connection 默认是'close',会'关闭'长连接;解读:客户端和服务器'每进行一次HTTP操作',就'建立一次tcp连接',任务结束就'中断'连接。-->已知:'chunk'、'websocket'

xwnxwn的专栏 991

OpenEuler内核编译及替换

一、内核源码下载 在gitee上下载OpenEuler内核源码 下载地址 选择需要的内核版本源码压缩包进行下载 二、内核编译 1.解压缩 将下载好的源码进行解压 tar xvf openeuler-kernel-4.19.90-2107.1.0.tar.gz 2.清理源代码树 解压后得到一个名为kernel的内核源码文件夹,进入后执行命令 make mrproper 清理过去内核编译产生的config,第一次编译时可不执行此命令 3.生成内核配置文件.config 先将将系统原配置文件拷贝过来,原

m0_56602092的博客 2万+

Nginx服务使用stream模块TCP代理rtmp视频流

nginx服务使用stream模块tcp代理rtmp视频流

xielj1的博客 6371

Kylin V10 ARM64离线安装ffmpeg实战指南

在国产化替代浪潮下,基于银河麒麟V10和ARM架构(如飞腾、鲲鹏)的内网服务器部署音视频处理服务成为常态。由于系统默认软件源缺乏aarch64包且无法连接外网,常规yum安装方式难以奏效。本文从离线安装的通用概念出发,剖析了在Kylin V10上安装ffmpeg的三大路线及其原理,重点介绍了源码编译法,包括依赖梳理、工具链准备、编译参数配置、常见错误排查等关键环节。同时,将这套依赖管理与离线部署方法论延伸至nginx、node.js、Python库及docker等场景,帮助读者建立一套可复用的国产化系统离线

weixin_33417488的博客 148

Halcon实战:5分钟搞定金属表面划痕检测(附完整代码解析)

本文提供了一份基于Halcon的金属表面划痕检测实战指南。通过核心的动态阈值算法,快速从图像中提取局部对比度异常区域,并结合形态学后处理与特征筛选,精准识别划痕。文章详解了从代码搭建、参数优化到工业场景适配的全流程,帮助工程师在五分钟内构建稳定高效的机器视觉检测方案。

weixin_29084231的博客 496

Nginx安装配置http以及stream

1、安装nginx./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module --user=nginx --group=nginx2、配置nginx#user nobody; worker_processes 1;#error_log l

jonathan_Cunese的博客 2943

告别卡顿!在RK3588上优化Gstreamer推拉流与RKNN推理的完整Pipeline实战

本文详细介绍了在RK3588平台上优化Gstreamer推拉流与RKNN推理的全链路Pipeline实战。通过解码环节参数调优、RKNN线程管理、内存预分配策略以及编码输出优化,实现60FPS流畅处理与亚秒级延迟。特别针对实时视频分析场景,提供了从rtspsrc到appsink的毫秒级优化方案,助力开发者构建零卡顿的智能视觉系统。

weixin_30698527的博客 484

TCP客户端(飞机机载设备)连接nginx反向代理访问TCP服务端

TCP客户端连接nginx反向代理访问TCP服务端

Gblfy_Blog 2173

RK3568平台开发系列:Android环境下CAN的使用

在RK3568平台上,我们可以利用Android环境中的API来实现CAN的使用。通过以上步骤,我们可以在Android应用中发送和接收CAN数据,并进行相应的处理。当接收到CAN数据时,将触发onMessageReceived回调方法,我们可以在这个方法中对接收到的数据进行处理。在上述代码中,我们指定了CAN的ID为0x123,数据为{0x01, 0x02, 0x03},并设置了标志位和周期。接收CAN数据需要注册一个监听器,并在监听器中处理接收到的数据。发送CAN数据需要指定CAN的ID和数据。

2301_79330513的博客 1912

LSTM+Transformer混合模型时间序列预测实战教学

LSTM+Transformer混合模型时间序列预测实战教学 毕业设计

8219

系列七、Nginx负载均衡配置

坑1:配置完nginx的配置文件后,启动nginx如果出现下面的显示效果,说明upstream中配置的tomcat服务没有开启,需要开启才行。坑2、tomcat服务启动了,nginx也启动了,如果不能实现负载均衡功能,很有可能是tomcat由于端口冲突问题导致的,此时需要修改server.xml中的端口。可以通过查看tomcat的日志查看具体的报错信息。

仰望星空,脚踏实地!安全感是自己给的,努力才是一辈子的安全感。 446

ARM功耗管理之功耗状态及功耗模式

思考:功耗状态?功耗模式?Core&Cluster&Device&SoC如何映射?

AI-安全-功耗 783

Nginx的负载均衡配置(七)

原文链接:https://www.cnblogs.com/knowledgesea/p/5199046.html 首先给大家说下upstream这个配置的,这个配置是写一组被代理的服务器地址,然后配置负载均衡的算法。这里的被代理服务器地址有两种写法。 # 第一种 upstream mysvr { server 192.168.10.121:3333; ...

153

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

nginx负载均衡配置

nginx实现负载均衡的方式 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,后端服务器宕机时,能被自动删除 且请求不会受影响 2.weight权重 指定轮询概率,weight和访问比率成正比,用于后端服务器性能不均的情况,权重越高 被访问的概率就越大 3.ip hash 每个请求被访问ip的hash结果分配,这样每个访客访客固定访问一个后端服务器 4.fair 动态根据后端服务器处理请求的响应时间来进行负载分配,...

m0_67252748的博客 5946

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

nginx配置负载均衡详解

使用upstream定义后端服务器集群。配置负载均衡算法:轮询、最少连接或 IP 哈希。配置健康检查机制,确保故障服务器不会接收到流量。配置代理请求头,转发原始客户端信息到后端服务器。负载均衡不仅能提高网站的可用性和扩展性,还能帮助减轻单台服务器的负载。在高可用性和高流量场景下,Nginx 是一个强大的负载均衡解决方案。

m0_58223765的博客 8392

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

nginx七层负载均衡配置

目录一、负载均衡介绍1)四层负载均衡2)七层负载均衡3)四层与七层区别二、nginx下载安装1、下载nginx源码包2、安装并启用三、nginx七层负载均衡配置real server设置:nginx配置:客户端设置:测试: 四、nginx扩充调度算法(sticky)1.下载扩展包2.编译前做一些优化:3.重新编译测试:nginx网站域名:http://nginx.org/ 2、安装并启用 解决: 继续编译 解决: 编译成功 此时生成了文件Makefile,此文件会指导我们进行make(将

dyh的博客 3089

nginx负载均衡配置详解

配置nginx实现负载均衡 一、负载均衡的作用 1、转发功能 按照一定的算法【权重、轮询】,将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量。 2、故障移除 通过心跳检测的方式,判断应用服务器当前是否可以正常工作,如果服务器期宕掉,自动将请求发送到其他应用服务器。 3、恢复添加 如检测到发生故障的应用服务器恢复工作,自动将其添加到处理用户请求队伍中。 二、Nginx实现...

壮子大壮子 1万+

Nginx 负载均衡配置详解

通过上述步骤,你已经成功配置了 Nginx 的负载均衡功能。选择适合你应用场景的负载均衡算法,并考虑动态负载均衡以应对后端服务器的变化。在实际应用中,根据具体需求对负载均衡进行调优,以确保系统的高性能和稳定性。版权声明:原创博主:牛哄哄的柯南[哈哈][抱拳]加油!共同努力!Keafmd牛哄哄的柯南,期待你的三连+关注~~keep accumulate for my dream【共勉】

『愚』的博客 3046

Nginx负载均衡的6种配置

配置思路 Nginx做负载均衡,需要借助nginx的upstream模块和proxy_pass反向代理模块共同实现 upstream模块: 用来定义服务器组,将后端服务器添加到组中,并定义向后调度的算法! proxy_pass模块: 实现反向代理,将接受到请求转发给upstream定义的服务器组 实验逻辑图如图所示: 服务器均为 centos6 操作系统 实验之前的操作 开始实验之前关闭所有服务器的防火墙和selinux Nginx负载均衡器的配置 安装NGINX 在NGINX负载均衡器上源码安装NGI

【优快云官方推荐】 6433

Nginx配置——负载均衡

Nginx配置负载均衡

scorpio的博客 2974

【Nginx】负载均衡配置详解

通过合理配置Nginx负载均衡,可以显著提高系统的可用性和性能。根据实际业务需求选择合适的负载均衡策略和参数配置是关键。

Mr_WoLong 3293

nginx下TCP负载均衡配置

负载均衡基础与nginx下TCP负载均衡配置 安装nginx 在服务器快速集群环境搭建中,都迫切需要一个能拿来即用的负载均衡器,nginx在1.9版本之前,只支持http协议web服务器的负载均衡,从1.9版本开始以后,nginx开始支持tcp的长连接负载均衡,但是nginx默认并没有编译tcp负载均衡模块,编写它时,需要加入--with-stream参数来激活这个模块。 nginx编译安装需要先安装pcre、openssl、zlib等库,也可以直接编译执行下面的configure命令,根据错误提示信息

清梦旅人的博客 7769

Nginx配置负载均衡

upstream通过Nginx的负载均衡功能,可以轻松地将请求分发到多台服务器,从而提高系统的可用性、容错性和处理能力。根据不同的应用场景,选择合适的负载均衡策略(如轮询、权重、IP哈希、最少连接)来优化系统的性能。默认轮询:适用于负载相对均衡的后端服务器。权重:适合不同性能服务器的场景,能够合理分配负载。IP哈希:适用于需要会话保持的场景。最少连接数:适用于处理请求时间差异较大的场景。

Xwz的博客 4860

Nginx负载均衡配置详解

Nginx 作为负载均衡器,能够高效地将请求分发到多个后端服务器,并提供多种负载均衡策略。通过合理的配置,可以提高系统的可用性和性能。定义后端服务器(upstream配置负载均衡策略。配置健康检查(如需要)。支持 SSL 加密。通过这些配置,可以充分利用 Nginx 的负载均衡功能。

qq_35861084的博客 1595
上一篇: GC算法详解
下一篇: PostgreSQL入门
github_zwl
博客等级 码龄11年 300粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值