nginx反向代理_负载均衡的配置
说明

两台虚拟机:
88节点是自己的虚拟机
66节点是小组成员的虚拟机,我们暂且叫同学机
tomcat端口,分别为8081和8082
总结就是:
自己虚拟机上面安装nginx和tomcat8082
同学机上安装tomcat8081
一、开始安装nginx(只安装在自己的虚拟机上)
- 都有两种方式,一种直接下载,第二种使用解压包方式。这里大多使用解压包方式。
- 我下载的压缩包的路径是:/data
- 我的解压路径:/usr/compress/
1.先安装wget命令
yum install wget -y
2.再安装编译软件包
yum install -y apr* autoconf automake bison bzip2 bzip2* compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
3.安装pcre
3.1先切换到/data下面,这样压缩包才能下载到/data中
cd /data
3.2下载
wget https://www.linuxprobe.com/Software/pcre-8.35.tar.gz
3.3查看是否下载成功
cd /data/
ll

3.4上传源码压缩包,解压、编译、安装 三部曲。
1)、解压文件
mkdir /usr/compress/
tar -zxvf pcre-8.35.tar.gz -C /usr/compress/

2)、编译
# 进入pcre目录
cd /usr/compress/pcre-8.35/
#编译
./configure

3)、安装
执行命令:
make
make install
4、安装 openssl
4.1先切换到/data下面,这样压缩包才能下载到/data中
cd /data
4.2下载OpenSSL的地址:
wget https://www.linuxprobe.com/Software/openssl-1.0.1h.tar.gz
4.3查看是否下载成功
cd /data/
ll

4.4上传源码压缩包,解压、编译、安装 三部曲。
1)、解压文件
tar -zxvf openssl-1.0.1h.tar.gz -C /usr/compress/
2)、编译
# 回到 openssl目录下,
cd /usr/compress/openssl-1.0.1h/
#编译
./config
3)、安装
执行命令:
make
make install
5、安装 zlib
5.1先切换到/data下面,这样压缩包才能下载到/data中
cd /data
5.2下载zlib的地址:
wget https://www.linuxprobe.com/Software/zlib-1.2.8.tar.gz
5.3查看是否下载成功
cd /data/
ll

5.4上传源码压缩包,解压、编译、安装 三部曲。
1)、解压文件
tar -zxvf zlib-1.2.8.tar.gz -C /usr/compress/
2)、编译
# 进入zlib目录
cd /usr/compress/zlib-1.2.8/
#编译
./configure
3)、安装
执行命令:
make
make install
6、安装 nginx
6.1先切换到/data下面,这样压缩包才能下载到/data中
cd /data
6.2下载nginx的地址:
wget https://www.linuxprobe.com/Software/nginx-1.6.0.tar.gz
6.3查看是否下载成功
cd /data/
ll

6.4上传源码压缩包,解压、编译、安装 三部曲。
1)、解压文件
tar -zxvf nginx-1.6.0.tar.gz -C /usr/compress/
2)、编译
# 进入nginx目录
cd /usr/compress/nginx-1.6.0/
#编译
./configure
3)、安装
执行命令:
make
make install
二、运行nginx
安装完nginx后,会在 路径 /usr/local 下自动生成 nginx 文件夹。这是自动生成的。
1.1进入这个目录:
cd /usr/local/nginx/sbin
1.2启动nginx
./nginx
1.3查询是否启动
ps -ef | grep nginx
1.4关闭防火墙和SELinux
systemctl stop firewalld
setenforce 0
1.5测试
默认端口为80
浏览器访问自己的ip出现nginx默认界面,nginx就配置好了
1.5.1怎么查看自己的ip


1.5.1怎么访问nginx

1.6 关闭nginx:
目前不用执行,但是要记住
关闭nginx:./nginx -s stop
三、安装配置JDK(两台都要安装)
1、上传并解压jdk文件
上传到/data


创建jdk目录
mkdir -p /usr/lib/jdk
切换路径
cd /data
解压:
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/lib/jdk
cd /usr/lib/jdk/jdk1.8.0_161/

2、配置环境变量
// 编辑profile文件
vim /etc/profile
# 在末尾处添加以下内容
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
// 退出并保存
source /etc/profile
3、检验java环境是否生效:
java -version

四、安装配置tomcat(两台服务器,都要部署)
1.上传安装包


2.解压安装包
创建文件夹
mkdir -p /usr/lib/tomcat
cd /data/
上传解压安装包
tar -zxvf apache-tomcat-9.0.55.tar.gz -C /usr/lib/tomcat
cd /usr/lib/tomcat/

3、边界tomcat配置文件修改端口号
3.1有nginx的那台虚拟机(自己的虚拟机)端口号修改为8082
vim /usr/lib/tomcat/apache-tomcat-9.0.55/conf/server.xml
第69行修改为8082

3.2 没有nginx的虚拟机(同学机)端口号修改为8081
vim /usr/lib/tomcat/apache-tomcat-9.0.55/conf/server.xml
第69行修改为8081

4、启动tomcat
到tomcat的bin目录下
cd /usr/lib/tomcat/apache-tomcat-9.0.55/bin
执行脚本启动tomcat
./startup.sh
关闭命令,了解就可以,不用执行
./shutdown.sh
5.检验是否启动成功
安装net-tools安装包
yum install net-tools -y
在自己的虚拟机上执行
netstat -tunlp | grep 8082
在同学机器上
netstat -tunlp | grep 8081

6.在云服务器上添加端口号
6.1有nginx的虚拟机,也就是自己的虚拟机



6.2 没有nginx的虚拟机,也就是同学的虚拟机


7.浏览器访问
关闭防火墙、SElinux
systemctl stop firewalld
setenforce 0


五、配置多节点反向代理(只修改nginx的虚拟机)
1.关闭nginx
cd /usr/local/nginx/sbin/
./nginx -s stop
2.修改配置文件
vim /usr/local/nginx/conf/nginx.conf
添加upstream参数配置:一定要添加在server上面,大概35行,一定一定一定
upstream targetserver{server 101.42.153.9:8081;server 101.43.248.178:8082;}

在location / 里面添加,大概47行,一定一定一定
proxy_pass http://targetserver;
注释掉这两句话,
root html;
index index.html index.htm;

3。重启nginx验证即可。
cd /usr/local/nginx/sbin/
./nginx
4.测试
直接访问nginx(也就是直接输入nginx那台虚拟机的ip),你可以看到他访问的其实是tomcat
101.43.248.178

其实到此处,已经实现了负载均衡,只不过每台服务器所占的权重是一样的,也就是流量是平分的
六、配置负载均衡
1、先修改其中一台tomcat默认页面(修改的是8082端口的虚拟机)
修改配置文件
vim /usr/lib/tomcat/apache-tomcat-9.0.55/conf/server.xml
在167行左后(上面),添加以下内容
<Context path="" docBase="testDemo"/>

2.在index.html文件添加内容(修改的是8082端口的虚拟机)
cd /usr/lib/tomcat/apache-tomcat-9.0.55/webapps
mkdir testDemo
cd /usr/lib/tomcat/apache-tomcat-9.0.55/webapps/testDemo
创建index。xml文件
touch index.html
编辑文件
vim index.html
添加以下内容
Tomcat reverse proxy
(这里修改其中一台tomcat服务器的默认页面,目的是为了咱们验证负载均衡,也就是说为了咱们访问
nginx的时候,能够更直观的看到每次访问的是哪一个节点)
3.重新启动tomcat(两台虚拟机都要)
cd /usr/lib/tomcat/apache-tomcat-9.0.55/bin
./shutdown.sh
./startup.sh
查看端口
netstat -tunlp | grep 8081
netstat -tunlp | grep 8082
4.查看两台虚拟机的tomcat端口能不能进去
4.1 查看8082端口,显示的是我们修改过的界面,也就是一句话

4.2查看8081端口,是正常的界面

5.测试负载均衡
访问nginx,有的时候访问的是8082端口有的时候访问的是8081端口,基本上一人一次
相关文章:
nginx反向代理_负载均衡的配置
说明 两台虚拟机: 88节点是自己的虚拟机 66节点是小组成员的虚拟机,我们暂且叫同学机 tomcat端口,分别为8081和8082 总结就是: 自己虚拟机上面安装nginx和tomcat8082 同学机上安装tomcat8081 一、开始安装nginx(只安装…...
程序员随时担心被抛弃......大厂外包值不值得去?
外包”这个词经常被人提及,而且也经常被我们所“鄙夷”,很多人都在四处问:“软件外包公司到底能不能去”? 外包公司到底能不能学到真正的技术? 外包大厂能不能去? 今天就给大家详细分享下外包的利与弊 做…...
C++解释器模式实战:从设计到应用的全面指南
目录标题 第一章:解释器模式简介(Introduction to the Interpreter Pattern)1.1 模式定义(Pattern Definition)1.2 解释器模式的用途(Uses of the Interpreter Pattern) 1.3 解释器模式的优缺点…...
使用华为云免费资源训练Paddle UIE模型
一、创建虚拟环境 好习惯,首先创建单独的运行环境 conda create -n uie python3.10.9 conda activate uie 二、安装paddle框架及paddlenlp 2.1 参考官方文档安装paddle 开始使用_飞桨-源于产业实践的开源深度学习平台 首先查看自己服务器cuda版本,…...
深度学习12. CNN经典网络 VGG16
深度学习12. CNN经典网络 VGG16 一、简介1. VGG 来源2. VGG分类3. 不同模型的参数数量4. 3x3卷积核的好处5. 关于学习率调度6. 批归一化 二、VGG16层分析1. 层划分2. 参数展开过程图解3. 参数传递示例4. VGG 16各层参数数量 三、代码分析1. VGG16模型定义2. 训练3. 测试 一、简…...
Doris(3):创建用户与创建数据库并赋予权限
Doris 采用 MySQL 协议进行通信,用户可通过 MySQL client 或者 MySQL JDBC连接到 Doris 集群。选择 MySQL client 版本时建议采用5.1 之后的版本,因为 5.1 之前不能支持长度超过 16 个字符的用户名。 1 创建用户 Root 用户登录与密码修改 Doris 内置 r…...
深入浅出 Golang 内存管理
了解内存管理~ 前言: 本节课主要介绍了内存管理知识与自动内存管理机制,并对目前 Go 内存管理过程中存在的问题提出了解决方案,同时结合了上次课程学习的《Go 语言性能优化》相关知识,提供可行性的优化建议 … 自动内存管理 Go…...
基于Python的简单40例和爬虫详细讲解(文末赠书)
目录 先来看看Python40例 学习Python容易坐牢? 介绍一下什么是爬虫 1、收集数据 2、爬虫调研 3、刷流量和秒杀 二、爬虫是如何工作的? 三、爬虫与SEO优化 什么是python爬虫 Python爬虫架构 最担心的问题 本期送书 随着人工智能以及大数据的兴起…...
Vector - CAPL - CAN x 总线信息获取(续2)
继续.... 目录 ErrorFrameCount -- 错误帧数量 代码示例 ErrorFrameRate -- 错误帧速率 代码示例 ExtendedFrameCount -- 扩展帧数量 代码示例 ExtendedFrameRate -- 扩展帧速率 代码示例 ExtendedRemoteFrameCount -- 远程扩展帧数量 代码示例 ExtendedRemoteFrameRa…...
C++基础知识【8】模板
目录 一、什么是C模板? 二、函数模板 三、类模板 四、模板特化 五、模板参数 六、可变模板参数 七、模板元编程 八、嵌套模板 九、注意事项 一、什么是C模板? C模板是C编程中非常重要的一部分,它允许程序员以一种通用的方式编写代码…...
MAC-安装Java环境、JDK配置、IDEA插件推荐
背景:发现经常换电脑装环境等比较麻烦,主要还是想记录一下,不要每次安装都到处翻。。 1、下载并安装JDK 到官网下载所需的JDK:https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html 这儿下…...
Mysql如何避免常见的索引失效
Mysql索引算是非常常用了,用得好提高效率,用的不好适得其反 如何避免常见的索引失效 1.模糊查询 使用 LIKE 查询时,如果搜索表达式以通配符开头,如 %value,MySQL 就无法使用索引来加速查询,因为它无法倒序…...
SpringBoot集成Redis及问题解决
SpringBoot集成Redis 此篇文章为SpringBoot集成Redis的简单介绍,依赖、序列化操作、工具类都可以在后面的实操中直接搬运使用或者在此基础上进行改进使用 1、集成Redis 1.1、新建SpringBoot项目 新建项目这边就不一一介绍了,大家如果还有不会的可以自行…...
PyTorch 人工智能研讨会:6~7
原文:The Deep Learning with PyTorch Workshop 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心…...
AI绘图设计师Stable Diffusion成为生产力工具(五):放大并修复老照片、马赛克照片、身份证件照
S:你安装stable diffusion就是为了看小姐姐么? I :当然不是,当然是为了公司的发展谋出路~~ 预先学习: 安装webui《Windows安装Stable Diffusion WebUI及问题解决记录》。运行使用时问题《Windows使用Stable Diffusion时…...
cubase正版下载安装包-cubase正版下载v1.2.0.69 软件激活版
cubase正版下载是一款实用的音乐创作类软件。我们可以通过这款软件实现创作音乐的自由,再也不用花大价钱请别人来帮忙制作,只需自己动动手就可以轻松完成我们所想要的,这款软件做到了让每一位热爱音乐的人都可以实现自己的梦想。 cubase正版…...
Python机器学习:支持向量机
这是我读本科的时候第一个接触到的机器学习算法,但也是第一个听完就忘的。。。 他的基本思想很简单:想办法把一个样本集划成两个部分:对于空间中的样本点集合,我们找到一个超平面把这个样本点集合给分成两个部分,其中…...
矩阵和线性代数的应用
矩阵和线性代数是数学中重要的概念,它们被广泛应用于物理、工程、计算机科学、经济学等众多领域。本文将讨论矩阵和线性代数的一些基本概念以及它们在实际应用中的重要性和影响。 一、矩阵和线性代数的基本概念 矩阵是由数字组成的矩形数组。它可以表示线性方程组…...
六:内存回收
内存回收: 应用程序通过 malloc 函数申请内存的时候,实际上申请的是虚拟内存,此时并不会分配物理内存。 当应用程序读写了这块虚拟内存,CPU 就会去访问这个虚拟内存, 这时会发现这个虚拟内存没有映射到物理内存&…...
【cpolar 内网穿透】Openwrt 软路由实现内网穿透
cpolar 是一种安全的内网穿透云服务,它将内网下的本地服务器通过安全隧道暴露至公网。使得公网用户可以正常访问内网服务。 文章目录 前言一、上传 cpolar 安装包二、配置cpolar环境变量三、安装并配置 cpolar 服务3.1 安装 cpolar3.2 启动 cpolar3.3 进行其他配置 …...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据!该数据集源自2025年4月发表于《地理学报》的论文成果…...
游戏开发中常见的战斗数值英文缩写对照表
游戏开发中常见的战斗数值英文缩写对照表 基础属性(Basic Attributes) 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...
HTML版英语学习系统
HTML版英语学习系统 这是一个完全免费、无需安装、功能完整的英语学习工具,使用HTML CSS JavaScript实现。 功能 文本朗读练习 - 输入英文文章,系统朗读帮助练习听力和发音,适合跟读练习,模仿学习;实时词典查询 - 双…...
