当前位置: 首页 > news >正文

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反向代理_负载均衡的配置

说明 两台虚拟机&#xff1a; 88节点是自己的虚拟机 66节点是小组成员的虚拟机&#xff0c;我们暂且叫同学机 tomcat端口&#xff0c;分别为8081和8082 总结就是&#xff1a; 自己虚拟机上面安装nginx和tomcat8082 同学机上安装tomcat8081 一、开始安装nginx&#xff08;只安装…...

程序员随时担心被抛弃......大厂外包值不值得去?

外包”这个词经常被人提及&#xff0c;而且也经常被我们所“鄙夷”&#xff0c;很多人都在四处问&#xff1a;“软件外包公司到底能不能去”&#xff1f; 外包公司到底能不能学到真正的技术&#xff1f; 外包大厂能不能去&#xff1f; 今天就给大家详细分享下外包的利与弊 做…...

C++解释器模式实战:从设计到应用的全面指南

目录标题 第一章&#xff1a;解释器模式简介&#xff08;Introduction to the Interpreter Pattern&#xff09;1.1 模式定义&#xff08;Pattern Definition&#xff09;1.2 解释器模式的用途&#xff08;Uses of the Interpreter Pattern&#xff09; 1.3 解释器模式的优缺点…...

使用华为云免费资源训练Paddle UIE模型

一、创建虚拟环境 好习惯&#xff0c;首先创建单独的运行环境 conda create -n uie python3.10.9 conda activate uie 二、安装paddle框架及paddlenlp 2.1 参考官方文档安装paddle 开始使用_飞桨-源于产业实践的开源深度学习平台 首先查看自己服务器cuda版本&#xff0c;…...

深度学习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 协议进行通信&#xff0c;用户可通过 MySQL client 或者 MySQL JDBC连接到 Doris 集群。选择 MySQL client 版本时建议采用5.1 之后的版本&#xff0c;因为 5.1 之前不能支持长度超过 16 个字符的用户名。 1 创建用户 Root 用户登录与密码修改 Doris 内置 r…...

深入浅出 Golang 内存管理

了解内存管理~ 前言&#xff1a; 本节课主要介绍了内存管理知识与自动内存管理机制&#xff0c;并对目前 Go 内存管理过程中存在的问题提出了解决方案&#xff0c;同时结合了上次课程学习的《Go 语言性能优化》相关知识&#xff0c;提供可行性的优化建议 … 自动内存管理 Go…...

基于Python的简单40例和爬虫详细讲解(文末赠书)

目录 先来看看Python40例 学习Python容易坐牢&#xff1f; 介绍一下什么是爬虫 1、收集数据 2、爬虫调研 3、刷流量和秒杀 二、爬虫是如何工作的&#xff1f; 三、爬虫与SEO优化 什么是python爬虫 Python爬虫架构 最担心的问题 本期送书 随着人工智能以及大数据的兴起…...

Vector - CAPL - CAN x 总线信息获取(续2)

继续.... 目录 ErrorFrameCount -- 错误帧数量 代码示例 ErrorFrameRate -- 错误帧速率 代码示例 ExtendedFrameCount -- 扩展帧数量 代码示例 ExtendedFrameRate -- 扩展帧速率 代码示例 ExtendedRemoteFrameCount -- 远程扩展帧数量 代码示例 ExtendedRemoteFrameRa…...

C++基础知识【8】模板

目录 一、什么是C模板&#xff1f; 二、函数模板 三、类模板 四、模板特化 五、模板参数 六、可变模板参数 七、模板元编程 八、嵌套模板 九、注意事项 一、什么是C模板&#xff1f; C模板是C编程中非常重要的一部分&#xff0c;它允许程序员以一种通用的方式编写代码…...

MAC-安装Java环境、JDK配置、IDEA插件推荐

背景&#xff1a;发现经常换电脑装环境等比较麻烦&#xff0c;主要还是想记录一下&#xff0c;不要每次安装都到处翻。。 1、下载并安装JDK 到官网下载所需的JDK&#xff1a;https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html 这儿下…...

Mysql如何避免常见的索引失效

Mysql索引算是非常常用了&#xff0c;用得好提高效率&#xff0c;用的不好适得其反 如何避免常见的索引失效 1.模糊查询 使用 LIKE 查询时&#xff0c;如果搜索表达式以通配符开头&#xff0c;如 %value&#xff0c;MySQL 就无法使用索引来加速查询&#xff0c;因为它无法倒序…...

SpringBoot集成Redis及问题解决

SpringBoot集成Redis 此篇文章为SpringBoot集成Redis的简单介绍&#xff0c;依赖、序列化操作、工具类都可以在后面的实操中直接搬运使用或者在此基础上进行改进使用 1、集成Redis 1.1、新建SpringBoot项目 新建项目这边就不一一介绍了&#xff0c;大家如果还有不会的可以自行…...

PyTorch 人工智能研讨会:6~7

原文&#xff1a;The Deep Learning with PyTorch Workshop 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xff0c;只关心…...

AI绘图设计师Stable Diffusion成为生产力工具(五):放大并修复老照片、马赛克照片、身份证件照

S&#xff1a;你安装stable diffusion就是为了看小姐姐么&#xff1f; I &#xff1a;当然不是&#xff0c;当然是为了公司的发展谋出路~~ 预先学习&#xff1a; 安装webui《Windows安装Stable Diffusion WebUI及问题解决记录》。运行使用时问题《Windows使用Stable Diffusion时…...

cubase正版下载安装包-cubase正版下载v1.2.0.69 软件激活版

cubase正版下载是一款实用的音乐创作类软件。我们可以通过这款软件实现创作音乐的自由&#xff0c;再也不用花大价钱请别人来帮忙制作&#xff0c;只需自己动动手就可以轻松完成我们所想要的&#xff0c;这款软件做到了让每一位热爱音乐的人都可以实现自己的梦想。 cubase正版…...

Python机器学习:支持向量机

这是我读本科的时候第一个接触到的机器学习算法&#xff0c;但也是第一个听完就忘的。。。 他的基本思想很简单&#xff1a;想办法把一个样本集划成两个部分&#xff1a;对于空间中的样本点集合&#xff0c;我们找到一个超平面把这个样本点集合给分成两个部分&#xff0c;其中…...

矩阵和线性代数的应用

矩阵和线性代数是数学中重要的概念&#xff0c;它们被广泛应用于物理、工程、计算机科学、经济学等众多领域。本文将讨论矩阵和线性代数的一些基本概念以及它们在实际应用中的重要性和影响。 一、矩阵和线性代数的基本概念 矩阵是由数字组成的矩形数组。它可以表示线性方程组…...

六:内存回收

内存回收&#xff1a; 应用程序通过 malloc 函数申请内存的时候&#xff0c;实际上申请的是虚拟内存&#xff0c;此时并不会分配物理内存。 当应用程序读写了这块虚拟内存&#xff0c;CPU 就会去访问这个虚拟内存&#xff0c; 这时会发现这个虚拟内存没有映射到物理内存&…...

【cpolar 内网穿透】Openwrt 软路由实现内网穿透

cpolar 是一种安全的内网穿透云服务&#xff0c;它将内网下的本地服务器通过安全隧道暴露至公网。使得公网用户可以正常访问内网服务。 文章目录 前言一、上传 cpolar 安装包二、配置cpolar环境变量三、安装并配置 cpolar 服务3.1 安装 cpolar3.2 启动 cpolar3.3 进行其他配置 …...

Android 10.0 Camera2 拍照功能默认选前摄像头

1.概述 在10.0的系统产品开发中,对于app调用系统api来打开摄像头拍照的功能也是常有的功能,而拍照一般是默认打开后置摄像头拍照的,由于 客户的产品特殊要求,需要打开前置摄像头拍照功能,所以需要了解拍照功能的流程,然后修改默认前置摄像头打开拍照功能就可以了 app调…...

vue-vue2和vue3的diff算法

核心要点 数据变化时&#xff0c;vue如何更新节点虚拟DOM 和 真实DOM 的区别vue2 diff 算法vue3 diff 算法 一、 数据变化时&#xff0c;vue如何更新节点 首先渲染真实DOM的开销是很大&#xff0c;比如有时候我们修改了某个数据且修改的数据量很大时&#xff0c;此时会频繁的…...

一文解读基于PaddleSeg的钢筋长度超限监控方案

项目背景 钢铁厂生产钢筋的过程中会存在部分钢筋长度超限的问题&#xff0c;如果不进行处理&#xff0c;容易造成机械臂损伤。因此&#xff0c;需要通过质检流程&#xff0c;筛选出存在长度超限问题的钢筋批次&#xff0c;并进行预警。传统的处理方式是人工核查&#xff0c;该方…...

NumPy 数组学习手册:1~5

原文&#xff1a;Learning NumPy Array 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 一、NumPy 入门 让我们开始吧。 我们将在不同的操作系统上安装 NumPy 和相关软件&#xff0c;并查看一些使用 NumPy 的简单代码。 正如“序言”所述&#xff0c;SciPy 与 NumPy 密…...

【C++11】晦涩难懂语法系列:可变参数模板

目录 可变参数模板 1.1 概念 1.2 可变参数模板定义 1.3 参数包的展开方式 1.3.1 递归展开参数包 1.3.2 逗号表达式展开参数包 1.4 STL的emplace系列函数 可变参数模板 1.1 概念 在C语言阶段&#xff0c;我们已经接触过可变参数&#xff0c;比如scand、printf等等 这里…...

计算机组成原理第二章——数据的表示与运算(下)

提示&#xff1a;时光清浅处 一步一安然 文章目录 前言2.3.1 浮点数的表示2.3.2 IEEE7542.2.3 浮点数的运算 前言 本节主要讲三个问题&#xff0c;浮点数的表示&#xff0c;IEEE 754标准&#xff0c;浮点数的加减运算 2.3.1 浮点数的表示 浮点数的作用和基本原理 定点数可表…...

1.mybatis-plus入门及使用

1.什么是MybatisPlus MyBatis-Plus 官网 为什么要学MybatisPlus&#xff1f; MybatisPlus可以节省大量时间&#xff0c;所有的CRUD代码都可以自动化完成MyBatis-Plus是一个MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效…...

JavaWeb开发 —— 前端工程化

目录 一、前后端分离开发 二、YApi 三、前端工程化 1. 环境准备&#xff1a;vue-cli 2. Vue项目创建 四、Vue项目开发流程 一、前后端分离开发 ① 最早的前端开发就是实现页面&#xff0c;顶多再写写JS让页面可以有交互的特效。属于前后端未分离的时代。 早期前后端混合开…...

listener监听器框架

监听器是Web开发中常用的一种组件&#xff0c;用于监听某些事件并根据事件触发相应的处理逻辑。在Spring Boot中使用监听器可以方便地实现对程序中各种事件的监听&#xff0c;比如启动事件、关闭事件等。 首先需要定义一个监听器&#xff0c;通常需要实现ApplicationListener接…...

tp5实现导入excel表到数据库

hello&#xff0c;大家好&#xff0c;好长时间没有更新文章了。最近一直在忙着做项目。所以断更了。 那么好&#xff0c;各位老铁是否想要实现导入导出的功能 请关注我&#xff0c;解密如何实现导入导出&#xff0c; 那么今天先来讲一下用thinkphp5.0 如何实现Excel表格导入数据…...