nginx反向代理和负载均衡 - 实践

news/2025/10/24 21:12:46/文章来源:https://www.cnblogs.com/tlnshuju/p/19164231

nginx反向代理和负载均衡 - 实践

2025-10-24 21:10  tlnshuju  阅读(0)  评论(0)    收藏  举报

nginx反向代理和负载均衡

一、nginx负载均衡案例

主机Ip安装系统
Nginx192.168.100.10NginxCentos7
rs1192.168.100.20HttpdCentos7
rs2192.168.100.30HttpdCentos7
1、三台主机都关闭防火墙和selinux,还需要配置好yum仓库
2、nginx主机----部署了nginx服务
3、rs1、rs2主机上,安装httpd,然后添加一个测试网页
以rs1为例:
[root@stw2 ~]# cd /etc/yum.repos.d/
[root@stw2 yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@stw2 yum.repos.d]# rm -rf *
[root@stw2 yum.repos.d]# vim server.repo
[root@stw2 yum.repos.d]# cat server.repo 
[aa]
name=aa1
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@stw2 yum.repos.d]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@stw2 yum.repos.d]# yum -y install httpd
[root@stw2 yum.repos.d]# echo "this is rs1" > /var/www/html/index.html
[root@stw2 yum.repos.d]# systemctl restart httpd
[root@stw2 yum.repos.d]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
4、在nginx主机上,修改配置文件,设置负载均衡
[root@stw ~]# nginx   //这里服务没起,先起服务,通过ss -anlt查看是否有80端口
[root@stw ~]# vim /usr/local/nginx/conf/nginx.conf
[root@stw ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@stw ~]# nginx -s reload

在这里插入图片描述

测试访问:

在这里插入图片描述

再次访问:

在这里插入图片描述

5、设置权重

如果想其中一台后端真实服务器,多承担一些访问量,可以去设置weight权重
[root@stw ~]# vim /usr/local/nginx/conf/nginx.conf
[root@stw ~]# nginx -s reload
upstream sss {
server 192.168.100.20 weight=2;
server 192.168.100.30;
}
那么重载nginx并测试访问,此时会发现100.20主机(rs1),访问时,访问的2次后,才轮询到rs2中

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6、设置端口

(1)首先修改rs1的httpd服务,侦听8080端口,并重启httpd服务
[root@stw2 yum.repos.d]# vim /etc/httpd/conf/httpd.conf 
[root@stw2 yum.repos.d]# systemctl restart httpd

在这里插入图片描述

还没有修改nginx配置文件时访问:(只能访问到rs2)

在这里插入图片描述

(2)修改nginx中的配置文件
upstream sss {
server 192.168.100.20:8080;
server 192.168.100.30;
}
测试访问:

在这里插入图片描述

在这里插入图片描述

7、ip_hash配置

[root@stw ~]# vim /usr/local/nginx/conf/nginx.conf
[root@stw ~]# nginx -s reload
upstream sss {
ip_hash;
server 192.168.100.20;
server 192.168.100.30;
}
测试访问:(绑定了rs2的主机,每次访问都访问这台主机)

在这里插入图片描述

ip_hash这种负载均衡模式根据个人理解就是:例如多个用户通过nginx访问到了后端的httpd集群中,这个时候因为有不同用户,所以ip也不同,ip+hash算法计算的hash值都传到了httpd,nginx就记录了这个ip和hash值,那么下次同一个ip过来还是会分配到这个httpd的。

如果在集群中的某台服务器出现故障,我们想要从nginx的集群配置中移除掉,我们不可以直接的将那一行删掉,比如 server 192.168.100.10:8080 删掉,如果直接删掉会导致nginx的hash算法重新计算,那么用户的会话或者说缓存都会失效掉,所以这里如果不用这台服务器,直接比较为down即可,也就是 server 192.168.100.10:8080 down 这么做就可以了。

二、动静分离 ------nginx+tomcat

还是基于上面的环境添加一台tomcat,Tomcat:192.168.100.40
1、部署tomcat(略)
2、测试访问tomcat的测试网页

在这里插入图片描述

3、配置nginx,设置动静分离
[root@stw ~]# vim /usr/local/nginx/conf/nginx.conf
[root@stw ~]# nginx -s reload

在这里插入图片描述

测试访问:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

ABP - 审计日志 [AuditedAttribute、IAuditingManager、EntityAuditingHelper]

审计日志核心辅助类:AuditedAttribute:标记类/方法记录审计日志。 IAuditingManager:手动管理审计日志。 EntityAuditingHelper:实体审计辅助(自动填充创建/修改时间)。审计日志(Auditing)核心类示例与讲解 AB…

【深入浅出Nodejs】异步非阻塞IO

概览:本文介绍了阻塞I/O、非阻塞I/O、多路复用I/O和异步I/O 四种模型,在实际的操作系统和计算机中I/O本质总是阻塞的,通过返回fd状态和轮询的方式来使I/O在应用层不阻塞,然后通过多路复用的方式更高效实现这种不阻…

【Java-JMM】Happens-before原则

一、什么是 Happens-before 原则 Happens-before 原则是 Java 内存模型(JMM)的核心概念,用于定义多线程环境下操作之间的内存可见性关系。 核心理解:如果操作 A happens-before 操作 B,那么 A 的执行结果对 B 可见…

P6072 『MdOI R1』Path

给定一颗无根树 \(|T|\)。 求两条点不相交的路径,使得两条路径上边权的异或和加起来最大。 \[|T| \le 3\times 10^4 \] 这是一个经典 trick: 对于求两条点不相交路径,我们可以枚举点 \(x\),使得其中一条在 \(x\) 的…

P1601题解

题意 就是A+B,相信大家都能理解,对于Python来说很简单,对C++崽就不友好了 解析 下面提供一种解法(代码中的BitInt500这个类,别问我那个什么int128函数,不顶事): 1.创建数组 2.从字符串构造大型整数 3.大整数加法…

10-23 好题选讲总结

10-23 好题选讲总结 P13779 「o.OI R2」试机题 - 洛谷 注意特殊的数据范围。 \(K=2\) 就是黑白染色,然后检查黑白点数是否相等,\(K=3\) 可以 \(O(n^2)\) DP 设 \(f_{i,j,0/1}\) 表示子树内选了 \(j\) 个与 \(i\) 颜色…

关于驻马店市 2025 中小学信息学竞赛的记录(入门级)(未完)

全网好像都没有关于这个神秘竞赛的内容。 包括它的神秘举办方:驻马店市计算机学会。ZCF? 因此我决定写一篇记录,同时公布关于这个比赛的 几乎 所有信息。————题记By CasKPART 1. 赛前通知 本人是驻马店第*初级中…

关于Markdown的使用

因为在使用Markdown来编写博客,这里将会给出一些Markdown的笔记来方便后续使用。 标题采用#来表示几级标题,例如#为一级,##为二级。 这是一个一级标题 这是一个二级标题 字体采用*或者_来表示,一个表示斜体,两个表…

自定义Spring Cloud LoadBalancer实践

Spring Cloud负载均衡概述 在不同的Spring Cloud版本中,采用了不同的负载均衡组件。 具体来说,在Spring Cloud 2020.0版本之前,默认负载均衡器为Netflix推出的Ribbon,自Spring Cloud 2020.0版本起,Ribbon已经被标…

游记——驻马店市2025中小学信息学竞赛(未完)

全网好像都没有关于这个神秘竞赛的内容。 包括它的神秘举办方:驻马店市计算机学会。ZCF? 因此我决定写一篇游记,同时公布关于这个比赛的 几乎 所有信息。————题记By CasKPART 1. 赛前通知 以下是比赛前老师发给…

SAP折旧模拟超过1000条资产dump问题及解决

通过如下Tcode做资产折旧模拟时,发现如果超出100条资产系统会dump. S_ALR_87012936 - 折旧模拟 AR18N - 折旧模拟(新)解决办法: note:3396352 - Performance issues in Asset reporting or archiving, 可以配置单…

ABP - SqlSugar [SqlSugarModule、ISqlSugarClient、SqlSugarRepository]

SqlSugar ORM 集成 核心辅助类:SqlSugarModule:SqlSugar集成模块(需手动引入社区包)。 ISqlSugarClient:SqlSugar核心客户端。 SqlSugarRepository<T>:基于SqlSugar的仓储实现。你关注到了ABP与SqlSugar O…

Odoo18.0 对接 京东快递

京东快递 本章我们来看一下如何使用我们欧姆网络科技的京东快递插件来完成Odoo与京东快递的对接。 前期准备 首先我们要先在京东快递的开放平台注册一个商家[自研商家],并完成认证签约。入驻之后我们需要拿到如下参数…

Matplotlib常见画图工具

View PostMatplotlib常见画图工具一、Matplotlib核心基础 在开始绘图前,需掌握以下基础框架,几乎所有图表都基于此扩展:点击查看代码 # 1. 导入库 import matplotlib.pyplot as plt import numpy as np # 用于生成…

[python] 代码性能分析工具line_profiler使用指北

代码分析能够评估各部分代码的时间消耗,即进行时间复杂度分析。通过这一过程,我们可以识别影响整体运行效率的关键部分,从而更高效地利用底层计算资源。此外,代码分析也可用于评估内存使用情况,即空间复杂度,以优…

react的diff算法

这个算法用来比较虚拟dom和真实dom,从而最小化真实dom的更新 本质上是对两颗Fiber树的对比 (在Vue中是对旧VDOM树与新VDOM树的对比) 在不剪枝的情况下,时间复杂度接近O(n^3)基于最长公共子序列 (LCS) 的朴素计算为…

LLM学习记录DAY11

📘今日学习总结 tokenization分词算法 BPE分词(Byte-Pair Encoding)BPE 算法从一组基本符号(例如字母和边界字符)开始,迭代地寻找语料库中的两个相邻词元,并将它们替换为新的词元,这一过程被称为合并。 合并的…

ABP - 当前用户 [ICurrentUser、CurrentUser]

当前用户(Current User) 核心辅助类:ICurrentUser:获取当前登录用户信息(ID、用户名、角色等)。 CurrentUser:静态快捷访问(需在请求上下文内)。在ABP框架中,ICurrentUser和CurrentUser用于获取当前登录用户…

轮次检测模型 VoTurn-80M 开源,多模态融合架构;OpenAI 收购桌面助手 Sky:实时识别屏幕自然语言交互丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态度…

ABP - 依赖注入和属性注入

一、依赖注入(Dependency Injection) 核心辅助类:IServiceCollection:扩展方法(如AddTransient、AddScoped)。 DependencyAttribute:标记注入生命周期(Transient/Scoped/Singleton)。 IIocResolver:手动解析…