Linux部署前后端分离项目

目录

 一、jdk安装

二、tomcat安装

 三、MySQL安装

四、nginx安装

五、配置多个tomcat负载,部署后端项目

六、前端部署


 一、jdk安装

1. 上传jdk安装包 jdk-8u151-linux-x64.tar.gz

进入opt目录,将安装包拖进去

2. 解压安装包

这里需要解压到usr/local目录下,在这里我新建一个文件夹保存解压后的文件

[root@localhost opt]# cd /usr/local/
[root@localhost local]# mkdir java

然后再进入到opt目录下进行解压

[root@localhost local]# cd /opt/
[root@localhost opt]# tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/java

解压完成后,可以查看

3. 进入/etc/profile文件中,配置环境变量

[root@localhost java]# vim /etc/profile

i键进入编辑模式,ESC退出编辑,:wq保存并退出 

#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_151/  
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

设置环境变量生效

[root@localhost java]# source /etc/profile

 安装完成后,可以查看

[root@localhost java]# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

二、tomcat安装

 1. 上传安装包 apache-tomcat-8.5.20.tar.gz

跟jdk一样,直接将安装包拖入到opt目录下即可

2. 解压安装包

在opt目录下进行解压,解压到usr/local/java目录下

[root@localhost java]# cd /opt/
[root@localhost opt]# tar -zxvf apache-tomcat-8.5.20.tar.gz -C /usr/local/java

 3. 启动tomcat

[root@localhost java]# cd apache-tomcat-8.5.20/bin/
[root@localhost bin]# ./startup.sh

 4. 防火墙设置

1、开放8080端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

2、刷新防火墙

firewall-cmd --reload

3、查看防火墙列表

firewall-cmd --zone=public --list-ports

5. 创建启动脚本(设置自启动,服务器开启即启动)

将tomcat目录下bin中的catalina.sh拷贝到/etc/init.d目录下

[root@localhost bin]# cp /usr/local/java/apache-tomcat-8.5.20/bin/catalina.sh /etc/init.d

重命名为tomcat 

[root@localhost bin]# cd /etc/init.d/
[root@localhost init.d]# mv catalina.sh tomcat

编辑tomcat

进入编辑界面,加入以下内容,注意根据自己的环境配置

JAVA_HOME=/usr/local/java/jdk1.8.0_151
CATALINA_HOME=/usr/local/java/apache-tomcat-8.5.20

加入以下注释,:wq保存

#chkconfig: 23456 10 90
#description: tomcat service

执行以下命令添加服务

[root@localhost init.d]# chkconfig --add tomcat

 三、MySQL安装

1. 卸载mariadb,否则安装MySQL会出现冲突(先查看后删除再查看)

[root@localhost ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
[root@localhost ~]# rpm -qa|grep mariadb

2. 上传MySQL安装包

跟jdk一样,将安装包拖入到opt目录下

3. 解压MySQL安装包 mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar

创建一个文件夹

[root@localhost ~]# cd /usr/local/java/
[root@localhost java]# mkdir mysql-5.7

进入opt目录下进行解压

[root@localhost java]# cd /opt
[root@localhost opt]# tar -xvf mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar -C /usr/local/java/mysql-5.7/

4. 以下内容逐条进行安装,-ivh 其中i表示安装,v表示显示安装过程,h表示显示进度 

rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.35-1.el7.x86_64.rpm

5. 启动MySQL服务及开机启动设置

[root@localhost mysql-5.7]# systemctl start mysqld
[root@localhost mysql-5.7]# systemctl enable mysqld.service

 6. 登录MySQL修改密码

[root@localhost mysql-5.7]# grep "password" /var/log/mysqld.log
2024-02-24T09:47:07.400066Z 1 [Note] A temporary password is generated for root@localhost: ro.*hxccr9oL
[root@localhost mysql-5.7]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.

#设置密码校验策略(0 or LOW),要不密码太LOW不让你过
set global validate_password_policy=0;
#设置密码校验长度,要不密码太短不让你过(多次测试发现密码最小长度为4位)
set global validate_password_length=4;
#更新密码
set password = password("123456");

#数据库没有授权,允许以root身份远程登录mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
#输入后使修改生效还需要下面的语句
FLUSH PRIVILEGES; 

#可以退出,试试用新密码重新登录
exit

7. 防火墙设置

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

四、nginx安装

1. 一键安装4个依赖,在opt目录下

[root@localhost opt]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

2. 上传并解压安装包 nginx-1.13.7.tar.gz

[root@localhost opt]# tar -xvf nginx-1.13.7.tar.gz -C /usr/local/java/

3. 安装nginx

#进入安装包目录

[root@localhost opt]# cd /usr/local/java/nginx-1.13.7/

#编译,执行配置:考虑到后续安装ssl证书,添加两个模块

[root@localhost nginx-1.13.7]# ./configure --with-http_stub_status_module --with-http_ssl_module

#安装

[root@localhost nginx-1.13.7]# make && make install

4. 启动nginx服务

安装好的nginx服务就会在/usr/local/nginx目录下

进入 /usr/local/nginx/sbin 目录下启动:
# 启动
./nginx

#查看是否启动成功 ps -A |grep nginx

[root@localhost sbin]# ps -A |grep nginx
  4422 ?        00:00:00 nginx
  4423 ?        00:00:00 nginx

还可以用 lsof -i:80

[root@localhost sbin]# lsof -i:80
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   4422   root    6u  IPv4  27486      0t0  TCP *:http (LISTEN)
nginx   4423 nobody    6u  IPv4  27486      0t0  TCP *:http (LISTEN)

当然,lsof命令需要下载

yum install -y lsof

5. 防火墙规则

#开放80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

#刷新防火墙规则

firewall-cmd --reload

#查看防火墙列表

firewall-cmd --zone=public --list-ports 

6. 配置开机自启动

#进入 /etc/rc.d/rc.local目录下

vim /etc/rc.d/rc.local

#配置nginx的服务目录 /usr/local/nginx/sbin/nginx

 #修改 /etc/rc.d/rc.local的权限

cd /etc/rc.d/

chmod 755 rc.local 

五、配置多个tomcat负载,部署后端项目

 1. 准备2个tomcat

cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20-8081/

2. 修改第二个tomcat的配置

进入到conf目录下

cd apache-tomcat-8.5.20-8081/conf/

编辑server.xml文件:

vim server.xml

HTTP端口,默认8080,改为8081


远程停服务端口,默认8005,改为8006


 

AJP端口,默认8009,改为8010

3. 防火墙规则

#开放8081端口

firewall-cmd --zone=public --add-port=8081/tcp --permanent

#刷新防火墙规则

firewall-cmd --reload

#查看防火墙列表

firewall-cmd --zone=public --list-ports 

4. 配置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是权重的意思,权重越大,分配的概率越大
} 

 更改完后,点击保存

5. 进入/usr/local/nginx/sbin目录下

#重启nginx服务

./nginx -s reload

这时nginx就负载到两个tomcat上了

6. 创建数据库,将脚本导入

注意数据库名称要一致

7. 将项目后端的war包放入到/usr/local/java/apache-tomcat-8.5.20/webapps下

注意两个tomcat都要放war包

8. 再重启tomcat服务,就可以访问到后端数据了

后端就部署完成了

六、前端部署

1.  一般开发都会提供一个前端的压缩包,在/usr/local目录下创建一个文件夹,存放压缩包

[root@localhost bin]# cd /usr/local/
[root@localhost local]# mkdir mypro
[root@localhost local]# cd mypro/

 2. 下载unzip命令,并解压前端压缩包

[root@localhost mypro]# yum install -y unzip
...
[root@localhost mypro]# unzip blog.zip

 3. 将解压后的路径配置到/usr/local/nginx/conf目录下的nginx.conf中

在C:\Windows\System32\drivers\etc\hosts中增加映射关系
192.168.93.141 www.zking.com 

然后再重启nginx服务,前端就部署完成了

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

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

相关文章

用一行代码在几秒钟内抓取任何网站

如果你正在寻找最强大的 Python 抓取工具?不要再看了!这一行代码将帮助你立即启动并运行。 Scrapeasy Scrapeasy 是一个 Python 库,可以轻松抓取网页并从中提取数据。它可用于从单个页面抓取数据或从多个页面抓取数据。它还可用于从 PDF 和…

【串口工具实战】关于USB转TTL工具的推荐

好的工具使用不但可以提高工作效率而且能够带来稳定性 一、更新日志 2024/02/26 A1.0 初稿 二、前言 以前:USB转TTL这东西有什么讲头不就是个数据转换模组集成 现在:你说的都对,对对对 结论:USB转TTL工具的推荐 作为下载…

软考37-上午题-【数据库】-数据模型、数据库的三级模式和二级映像

一、考情简介 上午题:6分——6道选择题 下午题:15分——一道分析题 E-R图、关系模式:下午考试必考!!!(编制也要考!) 二、数据模型 数据模型是对现实世界数据特征的抽象…

vue项目的前端工程化思路webpack(持续更新中)

写在前面:现在的前端网页功能丰富,特别是SPA(single page web application 单页应用)技术流行后,JavaScript的复杂度增加和需要一大堆依赖包,还需要解决Scss,Less……新增样式的扩展写法的编译工…

什么是Dapp

什么是Dapp Dapp(去中心化应用)程序的后端代码(智能合约)运行在一个去中心化的网络上,而非中心化的服务器。他们使用以太坊区块链网络作为数据存储端,并且用智能合约实现app的业务逻辑。 特点 智能合约&am…

【C语言】linux内核__netdev_start_xmit函数

一、中文注释 // 这是一个内联函数,用于启动网络设备的数据包发送流程。 // 它通过网络设备操作集(net_device_ops)指定的特定函数 // 来启动给定数据包的发送。// ops: 指向包含网络设备操作函数的结构体的指针 // skb: 指向要发送的套接字…

2024年大路灯无广测评推荐:书客、柏曼、霍尼韦尔大路灯哪个品牌更好?

临近开学,护眼大路灯哪个品牌好的话题度在不断提高! 有人说大路灯是“智商税”,但也有人说“学生党福音”、“照明神器”,吸引了大量人群的关注。在没用过大路灯之前我也很担心在担心是否是智商税的问题,直到我自己入…

AIGC实战——扩散模型(Diffusion Model)

AIGC实战——扩散模型 0. 前言1. 去噪扩散概率模型1.1 Flowers 数据集1.2 正向扩散过程1.3 重参数化技巧1.4 扩散规划1.5 逆向扩散过程 2. U-Net 去噪模型2.1 U-Net 架构2.2 正弦嵌入2.3 ResidualBlock2.4 DownBlocks 和 UpBlocks 3. 训练扩散模型4. 去噪扩散概率模型的采样5. …

伪原创一键生成软件:为你创作有价值的文章

伪原创一键生成软件是一种现代写手必备的得力助手。无论您是写作新手还是经验丰富的老手,它都能帮助您快速生成有吸引力的文章,让您在竞争激烈的市场中脱颖而出。伪原创一键生成软件是一款让写作变得轻松且高效的神奇工具。它为写手们节省了大量的时间和…

智慧公厕:让城市更智慧、更环保

在现代社会,智慧公厕作为城市管理的重要一环,是智慧城市的重要组成部分,其建设的价值十出突出,是公共厕所信息化升级改造的核心方案。如智慧公厕源头厂家广州中期科技有限公司,所自主研发的智慧公厕整体解决方案&#…

自动驾驶---行业发展及就业环境杂谈

进入21世纪以来,自动驾驶行业有着飞速的发展,自动驾驶技术(L2---L3)也逐渐落地量产到寻常百姓家。虽然最早期量产FSD的特斯拉有着深厚的技术积累,但是进入2010年以后,国内的公司也逐渐发展起来自己的自动驾…

Attention注意力机制

1. 背景 1.1. 变长序列 1.2. 序列的输出格式 每个向量对应一个标签,如词性标注整个序列输出一个标签,如情感分析(Sentiment Analysis)由模型决定输出的标签个数,这种任务称为Seq2seq任务 1.3. 序列标注 使用全连接的方式,没办法…

「连载」边缘计算(十九)02-22:边缘部分源码(源码分析篇)

(接上篇) 从启动函数Start()中可以看到,其以go routine的方式启动很多后台处理服务,具体如下。 1)初始化edged的kubeClient,具体如下所示。 // use self defined client to replace fake kube…

MySQL进阶篇2-索引的创建和使用以及SQL的性能优化

索引 mkdir mysql tar -xvf mysqlxxxxx.tar -c myql cd mysql rpm -ivh .....rpm yum install openssl-devel ​ systemctl start mysqld ​ gerp temporary password /var/log/mysqld.log ​ mysql -u root -p mysql> show variables like validate_password.% set glob…

大气颗粒物与VOCs PMF源解析

原文:大气颗粒物与VOCs PMF源解析 第一:PMF源解析技术及其输入文件 1、大气污染源解析方法有哪些? 2、这些方法各自应用的条件以及它们的优缺点? 3、大气颗粒物的基础知识及各组分的主要来源 大气颗粒物的来源: 大…

一键解锁本地大型语言模型!Ollama框架让你轻松运行Gemma

想要在本地运行大型语言模型吗? Ollama框架提供了这样的机会。 这个框架是专为在Docker容器中部署LLM而设计的,简化了部署和管理流程。 安装Ollama后,你只需执行一条命令,即可在本地运行开源大型语言模型。 它将模型权重、配置…

Spring Security源码学习

Spring Security本质是一个过滤器链 过滤器链本质是责任链设计模型 1. HttpSecurity 【第五篇】深入理解HttpSecurity的设计-腾讯云开发者社区-腾讯云 在以前spring security也是采用xml配置的方式&#xff0c;在<http>标签中配置http请求相关的配置&#xff0c;如用户…

蓝桥杯-最小砝码

知识点&#xff1a;本题主要考察任何一个物体都可以用 3进制表示。 #include <iostream> #include<cmath> using namespace std; //知识点:任何一个物体都可以用 3进制表示 int main() { int n; cin >> n; int sum 0; for (int i 0;; i)…

cmake构建在Visual stdio 2019 和Xcode的Qt的程序

概述&#xff1a;用CMake可以方便地构建Qt的应用程序&#xff0c;前提是你已经配置好用Visual Stdio 开发的Qt的环境或者Xcode的Qt开发环境。 1、编写CMakeLists.txt cmake_minimum_required(VERSION 3.6)set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STR…

电商erp系统对接API接口功能简介

对接电商ERP系统的API接口可以按照以下步骤进行&#xff1a; 1. 确认电商ERP系统的API接口文档&#xff1a;首先&#xff0c;你需要获得电商ERP系统的API文档。API文档会提供关于如何使用系统的接口以及参数等详细信息。确保你已经仔细阅读和理解了API文档。 2. 创建API密钥&…