Nginx负载均衡配置

 

负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在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

 

在末尾添加

 

192.168.5.149    a.com

 

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

 

 

 

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

 

A服务器nginx.conf设置

 

打开nginx.conf,文件位置在nginx安装目录的conf目录下。

 

在http段加入以下代码

 

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段加入以下代码

 

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加入以下代码:

 

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在末尾添加以下代码:

 

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加入以下一段代码:

 

server{ 

 

    listen 8080; 

 

    server_name a.com; 

 

    index index.html; 

 

    root /data0/htdocs/www; 

 

}

 

 

 

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

 

 

 

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

 

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上

 

内容来源于 小红提技术博客,http://www.xiaohongti.com/ 转载请保留地址,尊重版权。

Nginx负载均衡配置详解 在Nginx中配置负载均衡主要通过 upstream 模块实现,结合反向代理将请求分发到多个后端服务器。基础配置包括定义 upstream 块和设置 proxy_pass 指令。Nginx支持多种负载均衡策略,如轮询、加权轮询、IP哈希和最少连接,用户可根据需求选择。配置示例展示了如何设置加权轮询策略,并启用健康检查。高级配置包括健康检查、备份服务器和长连接优化。测试负载均衡可通过 curl 模拟请求和查看日志进行验证。常见问题如会话不一致、服务器下线和负载不均,可通过相应策略和参数调整解决。 阅读详情

相关推荐

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...

Rookie_Godfather的博客 2852

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

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

xwnxwn的专栏 991

IAR下载Linux环境适配:入门级安装指导

详细介绍如何在Linux系统中完成iar下载与环境配置,帮助开发者快速上手IAR集成开发环境,解决常见安装问题,提升开发效率。

weixin_35754676的博客 764

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

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

xielj1的博客 6374

Comsol&Matlab 亥姆霍兹共振消声器传递损失理论解与仿真解

当外界噪声以共振频率进入共振器时,共振器内的空气质量发生周期性的振动,从而减少或消除噪声。当特定频率的声波进入共振器时,共振器的空气质量会发生周期性的振动,从而实现对该频率的噪声的减弱或消除。5. 反射和吸收:共振器的几何形状和容积还可以影响共振器内空气振动的反射和吸收。然而,对于不同频率的噪声,需要相应调整共振器的参数以匹配新的共振频率。3. 腔体内的空气振动:当特定频率的声波进入共振器时,共振器内的空气质量会发生振动。2. 声波进入共振器:外界的声波通过共振器的颈部进入共振器的封闭空腔。

声学黑洞仿真工作室 4578

Arm CCA架构:硬件级机密计算与安全隔离技术解析

机密计算(Confidential Computing)通过硬件级隔离技术构建可信执行环境(TEE),是当前云安全和数据隐私保护的核心方案。Armv9-A引入的CCA架构采用物理地址空间隔离和Granule保护表(GPT)机制,实现4KB颗粒度的内存访问控制。该技术通过标准化的RMI/RSI接口规范,为虚拟化环境和安全敏感应用提供硬件级保护,特别适用于金融交易、医疗数据处理等需要严格隔离的场景。相比传统TEE方案,Arm CCA在隔离等级和动态权限管理方面具有显著优势,其Realm World设计为机密计算

weixin_30905133的博客 566

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

大疆C板使用C610电调驱动M2006电机(hal库)

大疆C板使用C610电调驱动M2006电机,以及遇到代码没问题,但是电机死活不转的处理

qq_46210601的博客 6024

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

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

Gblfy_Blog 2175

【FPGA教程案例100】深度学习1——基于CNN卷积神经网络的手写数字识别纯Verilog实现,使用mnist手写数字数据库

MNIST 数据库有一个 60,000 示例的训练集,还有一个 10,000 示例的测试集。这些数字已在大小方面规范化,在固定大小的图像中居中。如下图所示:我们任意选择0~9是个数字,将其转化为数字:0_0.txt1_0.txt2_0.txt3_0.txt4_0.txt5_0.txt6_0.txt7_0.txt8_0.txt9_0.txt。

FPGA/MATLAB学习教程/源码/项目合作开发 7832

Python爬虫实战:基于最新技术爬取国家企业信用信息公示系统数据

本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的国家企业信用信息公示系统爬虫。我们将从爬虫基础知识讲起,逐步深入到反爬机制应对、数据解析与存储等高级话题,最终实现一个完整的爬虫系统。文章包含大量实战代码示例,适合中高级Python开发者学习参考。网络爬虫(Web Crawler)是一种自动获取网页内容的程序,广泛应用于搜索引擎、数据分析和商业情报收集等领域。通用爬虫:如搜索引擎爬虫,广泛抓取互联网公开信息聚焦爬虫:针对特定领域或网站的数据采集增量式爬虫:只抓取更新内容,减少资源消耗。

2201_76125261的博客 2410

nginx负载均衡配置

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

m0_67252748的博客 5946

【TCAD】Sentaurus 中的“陷阱trap”仿真设置

允许使用有限的数据集名称 SFactor 规范,例如 DeepLevels , xMoleFraction , 和 yMoleFraction (从兴奋剂档案中读取) eTrappedCharge 和 hTrappedCharge (从指定的文件中读取 DevFields 在 File 部分)或 PMI 用户字段 PMIUserField0...10 (从指定的文件中读取 PMIUserFields 在 File 部分)。给定的陷阱截面 eNeutral 陷阱是多种多样的 Xsec 项目参数。

荷塘阅色 1308

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

基于MATLAB的奇异谱分析(SSA)算法详解

本文详细介绍了基于MATLAB的奇异谱分析(SSA)算法。文章首先阐述了SSA的基本概念、历史发展及其与传统信号分析方法的对比优势,指出SSA作为一种非参数、非线性时间序列分析方法,特别适合处理非平稳信号。随后详细解析了SSA算法的核心原理与数学模型,包括轨迹矩阵构建、奇异值分解、分组与重构四个关键步骤。文章还提供了完整的MATLAB实现框架和代码解析,涵盖参数检查、轨迹矩阵构建、SVD分解、分组策略和重构过程。最后,通过信号分解、去噪和预测三个应用案例展示了SSA的实际效果。

qq_42212808的博客 168

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

nginx配置负载均衡详解

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

m0_58223765的博客 8393

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Nginx配置——负载均衡

Nginx配置负载均衡

scorpio的博客 2974

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Nginx 负载均衡配置详解

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

『愚』的博客 3046

Nginx实现负载均衡配置

“Nginx 是一款轻量级的 HTTP 服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的 IO 性能,时常用于服务端的反向代理和负载均衡。”

qq_41939120的博客 1万+

Nginx配置负载均衡

文章目录基于Docker配置Nginx负载均衡准备工作Docker下载安装运行Nginx服务Docker部署静态页面项目构建静态页面的镜像运行静态页面镜像运行Nginx镜像配置Nginx负载均衡进入Nginx容器后台安装vim获取容器元数据通过config文件配置负载均衡 基于Docker配置Nginx负载均衡 准备工作 Docker下载安装运行Nginx服务 Docker下载安装运行Nginx服务 Docker部署静态页面项目 创建两个文件夹html-test1 html-test2 # ls ht

deroy 2424

【Nginx】负载均衡配置详解

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

Mr_WoLong 3295

Ubuntu配置Nginx负载均衡

Ubuntu配置Nginx负载均衡 假设现在有3台机器: A:192.168.1.100 B:192.168.1.101 C:192.168.1.102 假设现在B,C机器上已部署了Web服务器,访问192.168.1.101:9999和192.168.1.102:9999均可以获得服务器返回的数据。 现在使用A机器作为负载均衡器,将对A机器的请求分流到B或C机器上,需要如下操作: 给A机...

记录技术,记录生活 3765
上一篇: Mysql主从数据库配置
下一篇: Nginx反向代理和负载均衡部署指南
yufei_java
博客等级 码龄10年 18粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值