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/*后面的路径直接拼接到后面,即移除api
		proxy_pass http://tomcat_list/;
	}

3.IP域名映射 

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

4.重启Nginx服务

cd ../sbin
./nginx -s reload

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【elasticsearch】搜索结果处理

搜索结果处理 排序 elasticsearch支持对搜索结果排序,默认是根据相关度算分(_score)来排序。可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。 GET /indexName/_search {"query":{"match_a…

java 内存模型

程序计数器 线程私有主要字节码解释器通过读取程序计数器来选取下一条需要执行的指令,比如分支,循环,跳转和异常处理如果执行的是java 方法,那么程序计数器记录的时候虚拟机字节码指令的地址,如果执行的是native 方法…

【FreeRTOS】任务管理

一、任务管理介绍 1.任务状态 1)调度器切换任务调度 2)任务是一个死循环,如果想要停止这个任务则会调用在函数最后写的delete函数进行自杀 1.就绪态 1)已经具备执行的能力,只等待调度器进行调度。 2)新创建…

Linux系统前后端分离项目

目录 一.jdk安装 二.tomcat安装 三.MySQL安装 四.nginx安装 五.Nginx负载均衡tomcat 六.前端部署 一.jdk安装 1. 上传jdk安装包 jdk-8u151-linux-x64.tar.gz 进入opt目录,将安装包拖进去 2. 解压安装包 这里需要解压到usr/local目录下,在这里新建一个…

python程序设计基础:异常处理结构与程序调试、测试

第八章:异常处理结构与程序调试、测试 简单地说,异常是指程序运行时引发的错误,引发错误的原因有很多例如除零、下标越界、文件不存在、网络异常、类型错误、名字错误、字典键错误、磁盘空间不足,等等。 如果这些错误得不到正确的处理将会导致程序终止运行,而合理…

HuggingFists系统功能介绍(1)--系统概述

HuggingFists是一款低代码AI应用工具,力图发展为LangChain的低代码平替工具。HuggingFists发起于数由科技的Sengee数据科学计算框架,因此其界面风格继承了数据科学工具的很多特征。有别于完全基于LangChain衍生出的低代码工具Flowise,其风格更…

YOLO如何训练自己的模型

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

2.23 Day05

#include "mywidget.h" #include "ui_mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent), ui(new Ui::MyWidget) {ui->setupUi(this);//居中ui->label02->setAlignment(Qt::AlignCenter);ui->Edit1->setAlignment(Qt::Alig…

协程源码 launch 流程跟踪学习

为了更深入学习协程的底层实现原理,了解协程线程切换的根本本质。也为了以后在工作中可以根据不同的需求场景,更加随心所欲的使用不同的协程。 今天通过 launch 跟踪一下协程的执行流程。 fun getData() {Trace.beginSection("getData");Log.…

knife4j springboot3使用

简介 在日常开发中,写接口文档是我们必不可少的,而Knife4j就是一个接口文档工具,可以看作是Swagger的升级版,但是界面比Swagger更好看,功能更丰富 使用 我使用的是springboot3.2.3 knife4j 4.3.0,knife4j 4.4版本有…

RK3568平台开发系列讲解(Linux系统篇)字符设备驱动:主设备和次设备

🚀返回专栏总目录 文章目录 一、主设备和次设备的概念二、设备号的分配和释放沉淀、分享、成长,让自己和他人都能有所收获!😄 字符设备通过字符(一个接一个的字符)以流方式向用户程序传递数据,就像串行端口那样。字符设备驱动通过/dev目录下的特殊文件公开设备的属性和…

dolphinscheduler单机版部署教程

文章目录 前言一、安装准备1. 安装条件2. 安装jdk3. 安装MySQL 二、安装dolphinscheduler1. 下载并解压dolphinscheduler2. 修改配置文件2.1 修改 dolphinscheduler_env.sh 文件2.2 修改 application.yaml 文件 3. 配置mysql数据源3.1 修改MySQL安全策略3.2 查看数据库3.3 创建…

UE5 文字游戏(1) 仅UI截图转换为texture2d(适用于window端)

目录 需求 思路 1.截图并读取到本地 2.本地读取图片并转换为纹理2d 效果展示 找了好多的解决办法,都不管用。这个算是折中的。 需求 将当前的用户控件(ui)截图下来,并赋值到一个texture2d上。 我的需求:文字游戏…

golang通过http访问外部网址

不同项目之前,通过http访问,进行数据沟通 先设定一个接口,确认外部能访问到 PHP写一个接口 public function ceshi_return() {$data $this->request->param();$id $data[id];$res Db::name(user)->field(id,status,price,name)->where([id>$id])->find…

抖音视频抓取软件的优势|视频评论内容提取器|批量视频下载

抖音视频抓取软件在市场上的优势明显: 功能强大:我们的软件支持关键词搜索抓取和分享链接单一视频提取两种方式,满足用户不同的需求。同时,支持批量处理数据,提高用户获取视频的效率。 操作简单:我们的软件…

matlab|计及源荷不确定性的综合能源生产单元运行调度与容量配置随机优化模型

目录 1 主要内容 1.1 风光场景聚类 1.2 主模型程序结果 1.3 随机模型和确定性模型对比 1.4 有无储气对比 1.5 煤价灵敏性分析 1.6 甲烷价格灵敏性分析 2 部分程序 3 下载链接 1 主要内容 本程序复现《计及源荷不确定性的综合能源生产单元运行调度与容量配置两阶段随机…

OpenGL ES (OpenGL) Compute Shader 计算着色器是怎么用的?

OpenGL ES (OpenGL) Compute Shader 是怎么用的? Compute Shader 是 OpenGL ES(以及 OpenGL )中的一种 Shader 程序类型,用于在GPU上执行通用计算任务。与传统的顶点着色器和片段着色器不同,Compute Shader 被设计用于在 GPU 上执行各种通用计算任务,而不是仅仅处理图形…

前端导出下载文件后提示无法打开文件

问题 项目中的导出文件功能,导出下载后的文件打开提示如下: 原因 对返回的响应数据进行打印,发现响应数据为字符串格式,前期规划的后端返回数据应该 blob 对象的。后经排查后发现是请求头缺少了响应数据格式的配置,应…

SpringMVC 学习(六)之视图

目录 1 SpringMVC 视图介绍 2 JSP 视图 3 Thymeleaf 视图 4 FreeMarker 视图 5 XSLT 视图 6 请求转发与重定向 6.1 请求转发 (Forward) 6.2 重定向 (Redirect) 7 视图控制器 (view-controller) 1 SpringMVC 视图介绍 在 SpringMVC 框架中,视图可以是一个 J…

Python爬虫实战:图片爬取与保存

引言: 在本文中,我们将学习如何使用Python创建一个简单的图片爬虫。 我们将利用requests库来发送HTTP请求,BeautifulSoup库来解析HTML页面,以及os和shutil库来下载和保存图片。通过这个教程,你将学会如何爬取网…