【Linux】部署前后端分离项目---(Nginx自启,负载均衡)
目录
前言
一 Nginx(自启动)
2.1 Nginx的安装
2.2 设置自启动Nginx
二 Nginx负载均衡tomcat
2.1 准备两个tomcat
2.1.1 复制tomcat
2.1.2 修改server.xml文件
2.1.3 开放端口
2.2 Nginx配置
2.2.1 修改nginx.conf文件
2.2.2 重启Nginx服务
2.2.3 测试Nginx得结论
三 后端
3.1 将war包放置webapps下
3.2 导入SQL脚本
3.3 测试后端
四 前端
4.1 创建文件夹存储前端
4.2 解压前端
4.3 修改nginx.conf
4.4 配置映射关系
4.5 访问项目
前言
前一篇文章我们学习了部署单机项目其中包括了jdk,tomcat,mysql的安装,这一篇文章小编就不带大家进行安装了,直接从安装Nginx开始
上一篇文章:http://t.csdnimg.cn/UsK2P
一 Nginx(自启动)
前言:
Nginx作用图

从上图可以看出,让nginx负载多个tomcat从而访问数据库,这样能让更加的安全,如果一个服务器宕机了,还能使用另外一个服务器进行访问
2.1 Nginx的安装
先将Nginx的安装包放置到Linux中
1)下载并解压安装包
下载命令:wget http://nginx.org/download/nginx-1.13.7.tar.gz (有了可不需要)
解压命令:tar -xvf nginx-1.13.7.tar.gz (如下)

解压后:

2)一键安装4个依赖
命令执行:yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
3)安装nginx
# 先进入安装包目录
命令:cd nginx-1.13.7 (安装包名根据自己的来)

# 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块
命令: ./configure --with-http_stub_status_module --with-http_ssl_module

4) 安装
命令:make && make install

5)启动 nginx 服务
安装好的 nginx 服务在 /usr/local/nginx/sbin 下
cd /usr/local/nginx/sbin
# 启动
命令: ./nginx
虽然已经启动了,但我们也不知道到底启动成功没有。
6)#下载插件
yum install lsof
7) 查看Nignx是否启动
lsof -i:80

8) 设置防火墙开放 80 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
9) 跟新防火墙规则
firewall-cmd --reload
10) 查看开放端口号
firewall-cmd --reload && firewall-cmd --list-port

最后网址填写虚拟机地址访问Nginx
访问成功!

借鉴命令 可不操作
# 重启
./nginx -s reload
# 关闭
./nginx -s stop
# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf
2.2 设置自启动Nginx
先编辑etc下的rc.d/rc.local文件,点击i键处于编辑状态
1 vi /etc/rc.d/rc.local
再将nginx的启动命令位置复制上去,点击ESC,输入:wq保存并推出
2 /usr/local/nginx/sbin/nginx

3 修改完成之后,返回它的上一层目录rc.d 命令:../
4 进行给rc.local文件赋予权限: chmod 755 rc.local
二 Nginx负载均衡tomcat
让Nginx负载两个tomcat,后面我们用两个tomcat访问项目
2.1 准备两个tomcat
2.1.1 复制tomcat
① 先复制一个tomcat后缀名改名8081的,就知道这是一第二个tomcat
cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20-8081/
2.1.2 修改server.xml文件
进入根目下的server.xml文件,修改该tomcat的端口
处于tomcat目录中下使用下方命令
命令:vi conf/server.xml
按ESC键,输入:wq 保存并退出
2.1.3 开放端口
③ 开放8081端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent
#跟新防火墙规则
firewall-cmd --reload
#防火墙列表
firewall-cmd --zone=public --list-ports
2.2 Nginx配置
2.2.1 修改nginx.conf文件
前面我们安装了Nginx,它会在我们的系统中自动生产nginx文件
左侧输入/usr/local/nginx/conf,双击nginx.conf
往里面添加相关的配置
①
upstream tomcat_list { #服务器集群名字
server 127.0.0.1:8080 weight=1; #服务器1 weight是权重的意思,权重越大,分配的概率越大。server 127.0.0.1:8081 weight=1; #服务器2 weight是权重的意思,权重越大,分配的概率越大
}②
注释一行 添加proxy_pass http://tomcat_list;
保存按Ctrl+s,点击Yes即可
2.2.2 重启Nginx服务
再输入systemct restart nginx重启Nginx服务,让配置生效
或者进入 /usr/local/nfinx/sbin 目录下重启
./nginx -s reload
2.2.3 测试Nginx得结论
浏览器输入IP地址加上:8080/8081,进行切换测试
如果不加:8080/8081,默认也会访问其中一个端口,将其中一个tomcat停掉,也能进行访问服务器,直到被人攻击宕机或其它原因才会无法访问服务器
三 后端
3.1 将war包放置webapps下
① 第一个tomcat8080

② 第二个tomcat8081

3.2 导入SQL脚本
连接服务器,连接MySQL并导入相关的脚本

3.3 测试后端
进行测试后端
8080端口访问服务器结果:

8081访问服务器结果:

四 前端
4.1 创建文件夹存储前端
[root@localhost local]# mkdir mypro
[root@localhost local]# cd mypro/

4.2 解压前端
解压要使用unzip命令,要下载,输入:
yum install -y unzip再进行解压: 所要解压的前端包名根据自己的来
unzip blog.zip解压之后,会有一个dist文件,复制该dist路径
4.3 修改nginx.conf
重新进入nginc.conf文件中进行修改,
/usr/local/nginx/conf,双击nginx.conf
① server_name www.zking.com; #当前服务的域名(虚拟域名也可以)
root /usr/local/mypro/dist; #将要访问的网站的根目录,nginx节点会自动继承父节点的配置;这里放到/usr/local/*,放到其他路径下会有权限相关问题;必要的时候配置Nginx.conf的user为root
② # 代理配置
location / {
#该句代码是为解决history路由不能跳转的问题,在vue-router官网有介绍
try_files $uri $uri/ /index.html;
}
location ^~/api/ {
#^~/api/表示匹配前缀是api的请求,proxy_pass的结尾有/, 则会把/api/*后面的路径直接拼接到后面,即移除api
proxy_pass http://tomcat_list/;
}

4.4 配置映射关系
主机Ctrl+r,输入C:\Windows\System32\drivers\etc,编辑hosts中增加映射关系
虚拟机地址+映射地址如:192.168.244.141 www.zking.com
如下图

以管理员身份打开命令提示符或PowerShell:
如果无法编辑该hosts文件,是权限不够
解决办法:
①管理员运行终端
按下Win + X组合键,然后选择“终端管理员”或“Windows PowerShell(管理员)”。
再进入C:\Windows\System32\drivers\etc
② 更改文件的所有权:
使用takeown命令将文件的所有权更改为当前用户。例如,要将hosts文件的所有权更改为当前用户,可以运行以下命令:
takeown /f "C:\Windows\System32\drivers\etc\hosts" |
③ 更改文件的权限:
使用icacls命令来更改文件的权限,给予当前用户完全控制权限。例如:
icacls "C:\Windows\System32\drivers\etc\hosts" /grant 用户名:F |
将用户名替换为你的Windows用户名
不知道用户名的话,ctrl+r输入cmd进入终端
再输入命令echo %username%,获得用户名

解决之后再去编辑hosts文件,配置我们的映射关系 Ctrl+s保存
4.5 访问项目
如下的动态图,当我关掉一个8081的端口,我也能进行访问项目
不关掉两个端口的话,都可以进行访问我们的项目

相关文章:
【Linux】部署前后端分离项目---(Nginx自启,负载均衡)
目录 前言 一 Nginx(自启动) 2.1 Nginx的安装 2.2 设置自启动Nginx 二 Nginx负载均衡tomcat 2.1 准备两个tomcat 2.1.1 复制tomcat 2.1.2 修改server.xml文件 2.1.3 开放端口 2.2 Nginx配置 2.2.1 修改nginx.conf文件 2.2.2 重启Nginx服务 2…...
WPF Style样式设置
1.本window设置样式 <Window x:Class"WPF_Study.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expressi…...
【STM32】软件SPI读写W25Q64芯片
目录 W25Q64模块 W25Q64芯片简介 硬件电路 W25Q64框图 Flash操作注意事项 状态寄存器 编辑 指令集 INSTRUCTIONS编辑 编辑 SPI读写W25Q64代码 硬件接线图 MySPI.c MySPI.h W25Q64 W25Q64.c W25Q64.h W25Q64_Ins.h main.c 测试 SPI通信(W25…...
普通中小学校管理信息系统V1.1
普通中小学校管理信息系统 Ordinary Primary and Secondary Schools Management Information System 普通中小学校管理信息系统 Ordinary Primary and Secondary Schools Management Information System...
中国水果采摘机器人行业市场研究及发展趋势分析报告
全版价格:壹捌零零 报告版本:下单后会更新至最新版本 交货时间:1-2天 第一章 2016-2026年中国水果采摘机器人行业总概 1.1 中国水果采摘机器人行业发展概述 机器人技术的发展是一个国家高科技水平和工业自动化程度的重要标志和体现。机器…...
Linux多进程与信号
在多进程的服务程序中,如果子进程收到退出信号,子进程自行退出。如果父进程收到退出信号,应该先向全部的子进程发送退出信号,然后自己再退出。 演示demo程序 #include <iostream> // 包含输入输出流库,用于输…...
Self-attention与Word2Vec
Self-attention(自注意力)和 Word2Vec 是两种不同的词嵌入技术,用于将单词映射到低维向量空间。它们之间的区别: Word2Vec: Word2Vec 是一种传统的词嵌入(word embedding)方法,旨在为…...
【Flutter/Android】运行到安卓手机上一直卡在 Running Gradle task ‘assembleDebug‘... 的终极解决办法
方法步骤简要 查看你的Flutter项目需要什么版本的 Gradle 插件: 下载这个插件: 方法一:浏览器输入:https://services.gradle.org/distributions/gradle-7.6.3-all.zip 方法二:去Gradle官网找对应的版本:h…...
医疗实施-客户需求分析
在我的日常系统实施过程中,总会遇到不同角色的客户提出不同类别的需求。有的需求,客户目的想提高操作便携,但会对系统稳定性存在风险,应该拒掉。有些需求紧急而且影响重大,应该紧急处理。有些需求可以做,但…...
调度服务看门狗配置
查看当前服务器相关的sqlserver服务 在任务栏右键,选择点击启动任务管理器 依次点击,打开服务 找到sqlserver 相关的服务, 确认这些服务是启动状态 将相关服务在看门狗中进行配置 选择调度服务,双击打开 根据上面找的服务进行勾…...
AI时代 编程高手的秘密武器:世界顶级大学推荐的计算机教材
文章目录 01 《深入理解计算机系统》02 《算法导论》03 《计算机程序的构造和解释》04 《数据库系统概念》05 《计算机组成与设计:硬件/软件接口》06 《离散数学及其应用》07 《组合数学》08《斯坦福算法博弈论二十讲》 清华、北大、MIT、CMU、斯坦福的学霸们在新学…...
【数据结构和算法初阶(c语言)】数据结构前言,初识数据结构(给你一个选择学习数据结构和算法的理由)
1.何为数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的 数据元素的集合。本质来讲就是在内存中去管理数据方式比如我们的增删查改。在内存中管理数据的方式有很多种(比如数组结构、链式结构、树型结…...
LeetCode 0235.二叉搜索树的最近公共祖先:用搜索树性质(不遍历全部节点)
【LetMeFly】235.二叉搜索树的最近公共祖先:用搜索树性质(不遍历全部节点) 力扣题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/ 给定一个二叉搜索树, 找到该树中两个指定节点的最近公…...
【Prometheus】概念和工作原理介绍
目录 一、概述 1.1 prometheus简介 1.2 prometheus特点 1.3 prometheus架构图 1.4 prometheus组件介绍 1、Prometheus Server 2、Client Library 3、pushgateway 4、Exporters 5、Service Discovery 6、Alertmanager 7、grafana 1.5 Prometheus 数据流向 1.6 Pro…...
四川易点慧电子商务有限公司抖音小店:可靠之选,购物新体验
在当今这个网络购物日益盛行的时代,选择一家可靠的电商平台成为了消费者最为关心的问题之一。四川易点慧电子商务有限公司抖音小店作为新兴的电商力量,凭借其独特的魅力和优势,正逐渐成为众多消费者心中的可靠之选。 易点慧电子商务有限公司在…...
SpringBoot自带的tomcat的最大连接数和最大的并发数
先说结果:springboot自带的tomcat的最大并发数是200, 最大连接数是:max-connectionsaccept-count的值 再说一下和连接数相关的几个配置: 以下都是默认值: server.tomcat.threads.min-spare10 server.tomcat.threa…...
TLS1.2抓包解析
1.TLS1.2记录层消息解析 Transport Layer SecurityTLSv1.2 Record Layer: Handshake Protocol: Client HelloContent Type: Handshake (22)Version: TLS 1.0 (0x0301)Length: 253Content Type:消息类型,1个字节。 i 0Version:协议版本&…...
使用两个队列实现栈
在计算机科学中,栈是一种数据结构,它遵循后进先出(LIFO)的原则。这意味着最后一个被添加到栈的元素将是第一个被移除的元素。然而,Java的标准库并没有提供栈的实现,但我们可以使用两个队列来模拟一个栈的行…...
通过ffmpeg实现视频背景色替换
最近遇到一个需求,希望可以将素材视频的绿幕背景替换为指定的颜色,然后通过裁剪,拼接等处理制作一个新的视频。所以替换背景色成为了重要的一环,看能否通过ffmpeg来实现。通过一番搜索尝试,发现方案可行。下面我整理一…...
后轮位置反馈控制与算法仿真实现
文章目录 1. 后轮反馈控制2. 算法原理3. 算法和仿真实现 1. 后轮反馈控制 后轮反馈控制(Rear wheel feedback)算法是利用后轮中心的跟踪偏差来进行转向控制量计算的方法,属于Frenet坐标系的一个应用。通过选择合适的李雅普诺夫函数设计控制率…...
BERT文本分割-中文-通用领域开发者指南:源码路径/usr/local/bin/webui.py解析
BERT文本分割-中文-通用领域开发者指南:源码路径/usr/local/bin/webui.py解析 1. 项目简介 随着在线教学、远程会议等应用的普及,口语化文档的数量正在快速增长。这些文档通常以会议记录、讲座内容、采访稿等形式存在。但通过自动语音识别系统生成的文…...
墨语灵犀在操作系统概念教学中的应用:交互式问答与示例生成
墨语灵犀在操作系统概念教学中的应用:交互式问答与示例生成 操作系统课程,对于很多计算机专业的学生来说,就像一座横亘在面前的高山。进程、线程、死锁、内存分页……这些抽象的概念,常常让初学者感到困惑和枯燥。传统的教学方式…...
终极指南:如何测试Binwalk自定义提取器:从单元测试到集成测试的完整方案
终极指南:如何测试Binwalk自定义提取器:从单元测试到集成测试的完整方案 【免费下载链接】binwalk Firmware Analysis Tool 项目地址: https://gitcode.com/gh_mirrors/bi/binwalk Binwalk 是一款强大的固件分析工具,专门用于识别和提…...
3步解锁音乐收藏新维度:从音质到视觉的全方位升级
3步解锁音乐收藏新维度:从音质到视觉的全方位升级 【免费下载链接】Netease_url 网易云无损解析 项目地址: https://gitcode.com/gh_mirrors/ne/Netease_url 在数字音乐收藏领域,我们常常面临三重困境:想听无损音质却受限于平台限制&a…...
使用Pi0具身智能开发教育机器人的完整指南
使用Pi0具身智能开发教育机器人的完整指南 1. 引言 教育领域正在经历一场智能化变革,传统的教学模式已经难以满足个性化学习的需求。想象一下,一个能够理解学生情绪、提供个性化辅导、并且24小时在线的教育助手——这就是教育机器人带来的可能性。 Pi…...
Flutter控制麦克风的方法
Flutter本身不直接提供麦克风控制的原生API,需借助第三方插件实现,核心围绕「权限申请」「麦克风开启/关闭」「音频采样/录音」「资源释放」四大场景。以下是最常用、兼容性最强的实现方案,覆盖多平台适配,附完整代码示例。 一、核…...
如何高效解锁WeMod Pro功能:5分钟快速上手完整指南
如何高效解锁WeMod Pro功能:5分钟快速上手完整指南 【免费下载链接】Wemod-Patcher WeMod patcher allows you to get some WeMod Pro features absolutely free 项目地址: https://gitcode.com/gh_mirrors/we/Wemod-Patcher 还在为WeMod免费版的限制而烦恼吗…...
OBS Multi RTMP插件:终极多平台直播同步推流解决方案
OBS Multi RTMP插件:终极多平台直播同步推流解决方案 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 在当今直播行业快速发展的时代,如何同时在多个平台进行高效…...
1.NCM格式解密技术全解析:从原理到实战的音乐自由之路
1.NCM格式解密技术全解析:从原理到实战的音乐自由之路 【免费下载链接】ncmdump ncmdump - 网易云音乐NCM转换 项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump 问题引入:当音乐遭遇数字围栏 "花了千元订阅的无损音乐,…...
金融数据清洗总出错?(Pandas+OpenBB+YFinance联合清洗框架首次公开)
第一章:金融数据清洗总出错?(PandasOpenBBYFinance联合清洗框架首次公开) 金融数据清洗常因缺失值、时区错位、字段命名不一致、多源数据时间对齐失败等问题导致回测失真或模型训练崩溃。传统单库处理方式难以兼顾实时性、标准化与…...







