linux之前后端项目部署与发布

目录

前言

简介

一、安装Nginx

二、后端部署

2.1多个tomcat负载均衡

2.2 负载均衡 

2.3 后端项目部署

三、前端部署

1.解压前端

2.Nginx配置文件修改

3.IP域名映射 

4.重启Nginx服务


前言

上篇博主已经讲解过了单机项目的部署linux之JAVA环境配置JDK&Tomcat&MySQLlinux之JAVA环境配置JDK&Tomcat&MySQL​​​​​​

本篇给大家讲解一下,使用Nginx负载均衡,部署前后端分离项目

简介

Nginx是一个开源的web服务器和反向代理服务器,它也可以用作负载均衡器和HTTP缓存。想象一下,一个餐厅的厨师和顾客之间有一个非常高效的服务员,这个服务员就像Nginx一样。在餐厅中,服务员负责接收顾客的订单,把订单传给厨师,然后在菜品准备好后把菜品端给顾客。这个过程就像Nginx处理HTTP请求一样。

当有很多顾客同时在餐厅就餐时,服务员可以快速地为每位顾客提供服务,让他们不用等待太久。同样地,Nginx也可以处理大量并发的请求,提高网站的性能和稳定性。

一、安装Nginx

安装我们nginx所需要的依赖

1)一键安装4个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

2)下载并解压安装包 

wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz -C /usr/local/java/

3)安装nginx,一般我们在nginx都是要安装ssl证书的

# 进入安装包目录
cd nginx-1.13.7
# 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module
# 安装编译一下,一般我们编译完后/usr/local/
make && make install

这里就我们编译完后的文件夹,conf是环境配置文件,html是静态资源,logs日志,sbin启动

4)启动 nginx 服务

安装好的 nginx 服务在 /usr/local/nginx 下:进入 /usr/local/nginx/sbin 目录下启动:
# 启动
./nginx# 重启
./nginx -s reload# 关闭
./nginx -s stop# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf其它:
yum install lsof(给来查询端口占用)
lsof -i:80
kill -9 pid

5)开启80端口 

#开放端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#更新防火墙规则
firewall-cmd --reload
#防火墙列表
firewall-cmd --zone=public --list-ports

 现在已经安装好了,但不过我们重启就nginx就关闭了,不会自启动

6)配置nginx自启动

vim /etc/rc.d/rc.local
把服务目录配置进去
/usr/local/nginx/sbin/nginx

7)修改/etc/rc.d/rc/local的权限

cd /etc/rc.d/
chmod 755 rc.local

二、后端部署

2.1多个tomcat负载均衡

首先先去准备tomcat,我这边在tomcat的根目录,复制了两个,一个是8081,一个是8082

 cd /切换到8081的/conf/,这个上面我们说了,这个是用来配置环境文件的

进入后我们输入 vim server.xml 去修改端口号,所有的端口都不能重复,所以在修改端口号中只要看到这种有数字的就往上加1就好了,下面要修改3个地方

 都改好后,就开发8081、8082端口

#开发端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=8082/tcp --permanent
#更新防火墙规则
firewall-cmd --reload
#防火墙列表
firewall-cmd --zone=public --list-ports

去测试一下是否可以连上8081、8082

 

2.2 负载均衡 

配置负载均衡

1)首先先切换到Nginx服务目录 cd /usr/local/nginx/conf/ 

2)在这里面有一个文件 nginx.conf,但是不建议vim修改

pwd查看当前路径,然后cp到上面的输入框中找到nginx.conf,双击进去编辑

3)放入这个集群,负载均衡就配置好了,可以看到这里我们是配置了3个tomcat 

upstream  tomcat_list {  #服务器集群名字server    127.0.0.1:8080  weight=1;   #服务器1   weight是权重的意思,权重越大,分配的概率越大。server    127.0.0.1:8081  weight=1; #服务器2   weight是权重的意思,权重越大,分配的概率越大server    127.0.0.1:8082  weight=1; #服务器3   weight是权重的意思,权重越大,分配的概率越大} 

4) 反向代理

proxy_pass   http://tomcat_list;

5)配置好了以后只需要做一件事,把我们的nginx重启一下 

./nginx -s reload

 

测试Nginx负载2个tomcat的效果

# 来回切换tomcat:8080、tomcat:8081两个服务器的类容
http://192.168.195.139/
# 停掉1个tomcat
发现还是可以访问项目

现在我们可以去测试一下,我们不需要输入端口号就自动访问的tomcat,会在3个端口中选择一个端口进入,当然你们也可以自己去测试一下,把其中的一个tomcat停了,看它是否还能进入tomcat

2.3 后端项目部署

1)把我们后端项目,cp到/usr/local/java/apache-tomcat-8.5.20/webapps当中

注意!是把所有端口都放一个后端项目,否则弄了负载均衡也没用到

2)把我们sql脚本导入到mysql连接工具当中,新建数据库,数据库名字需要根据项目使用的数据库名字统一,右键运行SQL文件,刷新就好了

3)接下来我们重启tomcat

回到tomcat的bin目录下,需要先把每个tomcat停掉,在依次重新启动一下./startup.sh

这样我们后端项目就部署成功了

三、前端部署

1.解压前端

在/usr/local下创建一个文件夹并进入,把项目前端放到里面,再解压

我们在cd /usr/local,创建mkdir mypro文件夹,我们把前端项目丢到mypro里面

 现在要进行解压,但是我们没有unzip所以需要下载

yum install -y unzip

下载完成后,解压

unzip blog.zip

2.Nginx配置文件修改

1.首先先切换到Nginx服务目录 cd /usr/local/nginx/conf/ 

2.在这里面有一个文件 nginx.conf,但是不建议vim修改

3.pwd查看当前路径,然后cp到上面的输入框中找到nginx.conf,双击进去编辑

4.把这些代码放入进去

server {listen       80;            #监听80端口,可以改成其他端口#server_name  localhost;    #当前服务的域名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/*后面的路径直接拼接到后面,即移除apiproxy_pass http://tomcat_list/;}

3.IP域名映射 

C:\Windows\System32\drivers\etc\hosts中增加映射关系

4.重启Nginx服务

cd ../sbin
./nginx -s reload

这样就好啦,今天就到这里 

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

KDD 2023 图神经网络方向论文总结

ACM SIGKDD(国际数据挖掘与知识发现大会,KDD)是数据挖掘领域历史最悠久、规模最大的国际顶级学术会议,也是首个引入大数据、数据科学、预测分析、众包等概念的会议。今年,第29届 KDD 大会在美国加州长滩举行&#xff0…

YOLO如何训练自己的模型

目录 步骤 一、打标签 二、数据集 三、跑train代码出模型 四、跑detect代码出结果 五、详细操作 步骤 一、打标签 (1)在终端 pip install labelimg (2)在终端输入labelimg打开 如何打标签: 推荐文章&#xf…

【初始RabbitMQ】延迟队列的实现

延迟队列概念 延迟队列中的元素是希望在指定时间到了之后或之前取出和处理消息,并且队列内部是有序的。简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列 延迟队列使用场景 延迟队列经常使用的场景有以下几点: 订单在十分…

蓝桥杯备战刷题(自用)

1.被污染的支票 #include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std; int main() {int n;cin>>n;vector<int>L;map<int,int>mp;bool ok0;int num;for(int i1;i<n;i){cin>>nu…

Redis实现滑动窗口限流

常见限流算法 固定窗口算法 在固定的时间窗口下进行计数&#xff0c;达到阈值就拒绝请求。固定窗口如果在窗口开始就打满阈值&#xff0c;窗口后半部分进入的请求都会拒绝。 滑动窗口算法 在固定窗口的基础上&#xff0c;窗口会随着时间向前推移&#xff0c;可以在时间内平滑控…

HUAWEI Programming Contest 2024(AtCoder Beginner Contest 342)

D - Square Pair 题目大意 给一长为的数组&#xff0c;问有多少对&#xff0c;两者相乘为非负整数完全平方数 解题思路 一个数除以其能整除的最大的完全平方数&#xff0c;看前面有多少个与其余数相同的数&#xff0c;两者乘积满足条件&#xff08;已经是完全平方数的部分无…

C#,动态规划(DP)模拟退火(Simulated Annealing)算法与源代码

1 模拟退火 *问题:**给定一个成本函数f:r^n–>r*&#xff0c;找到一个 n 元组&#xff0c;该元组最小化 f 的值。请注意&#xff0c;最小化函数值在算法上等同于最大化(因为我们可以将成本函数重新定义为 1-f)。 很多有微积分/分析背景的人可能都熟悉单变量函数的简单优化。…

深度学习手写字符识别:推理过程

说明 本篇博客主要是跟着B站中国计量大学杨老师的视频实战深度学习手写字符识别。 第一个深度学习实例手写字符识别 深度学习环境配置 可以参考下篇博客&#xff0c;网上也有很多教程&#xff0c;很容易搭建好深度学习的环境。 Windows11搭建GPU版本PyTorch环境详细过程 数…

万字长文带你由浅入深夯实ARM汇编基础——汇编指令及寻址方式最全梳理(附示例)!

《嵌入式工程师自我修养/C语言》系列——由浅入深夯实ARM汇编基础&#xff0c;汇编指令及寻址方式梳理&#xff08;附示例&#xff09;&#xff01; 一、引言二、ARM汇编语言2.1 ARM汇编的特点2.2 ARM指令集格式标准2.2.1 机器指令格式2.2.2 汇编指令格式 三、ARM寻址方式3.1 立…

如何做到三天内完成智能直流伺服电机系统开发?

适应EtherCAT/CANopen协议三相伺服电机直流伺服电机直线伺服音圈电机 如何开发高性能直流伺服电机驱动控制器&#xff1f; 需要熟悉高性能单片机&#xff08;至少是ARM或DSP水平的&#xff09;&#xff0c;需要掌握空间磁场矢量控制FOC&#xff0c;需要掌握运动轨迹算法……此…

谁是单身狗?——C语言刷题

创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 单身狗1 题述 在一个整型数组中&#xff0c;只有一个数字出现一次&#xff0c;其他数组都是成对出现的&#xff0c;请找出那个只出现一次的数字。 例如&#xff1a; 数组中有&#xff1a;1 2 3 4 5 1 2 3 4&a…

FairyGUI × Cocos Creator 3.7.3 引入报错解决

Cocos Creator 3.7.3引入fgui库 package.json添加这个依赖 "devDependencies": {"fairygui-cc": "latest"}执行npm i 报错解决 使用import引入fairygui-cc&#xff0c;就会有报错和警告&#xff0c;简单处理一下。 鼠标随便点一下也会出警告…

2024“薪”风口、学习鸿蒙开发就业钱景如何?

随着华为的鸿蒙系统从诞生之初就备受关注&#xff0c;对于那些对鸿蒙开发感兴趣并希望在这一领域寻找职业发展的人来说&#xff0c;这是一个非常重要的问题。 那么&#xff0c;2024年学鸿蒙开发的就业前景如何呢&#xff1f; 一、彻底摆脱“安卓套壳”&#xff01; HarmonyO…

天拓四方:工业智能网关如何助力企业实现智能制造升级

工业智能网关是一种具备数据处理、通信转换和智能控制功能的硬件设备。它能够采集来自不同传感器和执行器的数据&#xff0c;通过标准化协议将数据上传到云端或本地服务器进行分析处理&#xff0c;并实现对设备的远程监控和控制。同时&#xff0c;工业智能网关还具备强大的数据…

靡语IT:JavaScript数组

目录 1.数组&#xff1a;Array 2.Array.length 3.数组的声明(创建)方法 4.数组去重 5.数组遍历 6.类数组对象 1.数组&#xff1a;Array 数组对象的作用是&#xff1a;使用单独的变量名来存储一系列的值。 参数 参数 size 是期望的数组元素个数。返回的数组&#xff0…

抖音视频提取软件怎么用|抖音数据抓取工具

针对用户获取抖音视频的需求&#xff0c;我们开发了一款功能强大的抖音视频提取软件&#xff0c;旨在帮助用户轻松获取他们感兴趣的视频内容。无需逐个复制链接&#xff0c;无需繁琐的下载步骤&#xff0c;我们的软件让抖音视频获取变得简单快捷。 使用我们的软件非常简单&…

深入探究Nginx的使用方法

目录 引言 一、网络状态页 二、Nginx 第三方模块 三、变量 &#xff08;一&#xff09;内置变量 &#xff08;二&#xff09;自定义变量 四、自定义日志 &#xff08;一&#xff09;有关日志的配置信息 &#xff08;二&#xff09;error日志的设置 1.日志的等级 2.自…

Python循环结构你学会了吗?

1.while 循环 需求&#xff1a;输出 10 遍的 今天天气不错 python 中的循环分为 while 循环和 for 循环 """ while 循环的基础语法&#xff1a; 1.初始化的表达式 while 2.条件表达式循环体&#xff08;重复执行的程序&#xff09;3.更新条件执行流程&#x…

我是如何深入学习理解Linux权限的,答案就在这里。

目录 1. shell命令以及运行原理2. Linux权限的概念3.Linux权限管理01.文件访问者的分类&#xff08;三种人&#xff09;02.文件类型和访问权限&#xff08;事物属性&#xff09;(1)文件类型 03.文件权限值的表示方法a)字符表示方法&#xff08;三三为一组&#xff09;b)8进制数…

市场复盘总结 20240223

仅用于记录当天的市场情况&#xff0c;用于统计交易策略的适用情况&#xff0c;以便程序回测 短线核心&#xff1a;不参与任何级别的调整&#xff0c;采用龙空龙模式 一支股票 10%的时候可以操作&#xff0c; 90%的时间适合空仓等待 二进三&#xff1a; 进级率中 57% 最常用的…