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 nginx4422 ?        00:00:00 nginx4423 ?        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服务,前端就部署完成了

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

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

相关文章

中科大计网学习记录笔记(十五):可靠数据传输的原理

前前言:看过本节的朋友应该都知道本节长度长的吓人,但其实内容含量和之前的差不多,老师在本节课举的例子和解释比较多,所以大家坚持看完是一定可以理解透彻的。本节课大部分是在提出问题和解决问题,先明确出现的问题是…

解密看板管理的奥秘!持续提升研发效能的关键

看板管理近年来变得越来越流行,许多企业在他们的项目中采用了这种精益工作流程方法。但是看板管理在研发项目中的可持续性如何呢?在本文中,我们将从可持续性的角度探讨在研发项目中使用看板管理的好处和挑战。 一、研发的看板管理如何持续? …

【EAI 025】Ego4D: Around the World in 3,000 Hours of Egocentric Video

Paper Card 论文标题:Ego4D: Around the World in 3,000 Hours of Egocentric Video 论文作者:Kristen Grauman, Andrew Westbury, Eugene Byrne, et al. 作者单位:UC Berkeley, CMU, Google 论文原文:https://arxiv.org/abs/2110…

Java 过滤器深入了解学习

Java 过滤器深入了解学习 生活不能等待别人来安排,要自己去争取和奋斗;而不论其结果是喜是悲,但可以慰藉的是,你总不枉在这世界上活了一场。有了这样的认识,你就会珍重生活,而不会玩世不恭;同时…

Git笔记——3

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、合并模式和分支策略 二、bug分支 三、强制删除分支 四、创建远程仓库 五、克隆远程仓库_HTTPS和_SSH 克隆远程仓库_HTTPS 克隆远程仓库_SSH 六、向远程仓库…

MCU独立按键单控LED实现

##江科大视频学习,并且对具体的一些小细节进行更详细的分析。 什么是独立按键? 轻触按键:相当于是一种电子开关,按下开头接通,松开时开头断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。 注意…

【大厂AI课学习笔记NO.53】2.3深度学习开发任务实例(6)数据采集

这个系列写了53期了,很多朋友收藏,看来还是觉得有用。 后续我会把相关的内容,再次整理,做成一个人工智能专辑。 今天学习到了数据采集的环节。 这里有个问题,数据准备包括什么,还记得吗? 数…

Unity使用的GC方式——贝姆GC(BOEHM GC)

Unity合作的Mono版本为Mono的早期版本,此时还没有使用SGen GC,后来Mono将默认GC方式改为SGen GC,Unity并没有继续购买,因此Unity使用的GC方式仍然是老的贝姆GC。 贝姆GC官方网页:https://www.hboehm.info/gc/index.htm…

15.4K Star,超强在线编辑器

Hi,骚年,我是大 G,公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 今天推荐一款非常棒的开源实时协作编辑器,可用于多人同时编…

SQLServer 格式化数据的方法

格式化数据一般考虑使用FORMAT 或者CONVERT ​​​​​​​函数,FORMAT 函数是在 SQL Server 2012 中引入的,如果你使用的是较早版本的 SQL Server,则可能需要考虑使用其他方法,如 CONVERT 函数。 在 SQL Server 中,FO…

【C++ QT项目5】——基于HTTP与JSON数据流的天气预报界面设计

【C QT项目5】——基于HTTP与JSON数据流的天气预报界面设计 一、项目概述二、UI设计与stylesheet样式表三、天气预报数据接口四、JSON数据4.1 概述4.2 QT生成JSON数据4.3 QT解析JSON数据4.4 将JSON数据解析到QMap中 五、软件开发网络通信架构5.1 BS架构/CS架构5.2 HTTP基本概念…

探索Java11新世界:JDK 11新特性详解

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

Python自定义logger模块(附Demo)

目录 1. 内置logger2. 自定义logger 1. 内置logger Python标准库中的logging模块提供了日志记录的功能 允许开发者通过创建日志记录器、处理程序和格式化器来控制日志的生成和输出 以下是logging模块的一些主要组件和概念: 日志记录器 (Logger):整个…

JavaScript中的内存泄漏

一、是什么 内存泄漏(Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存 并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失…

【前端素材】推荐优质医院后台管理系统I-Health平台模板(附源码)

一、需求分析 后台管理系统是一种用于管理和监控网站、应用程序或系统的在线工具。它通常是通过网页界面进行访问和操作,用于管理网站内容、用户权限、数据分析等。后台管理系统是网站或应用程序的控制中心,管理员可以通过后台系统进行各种管理和配置操…

基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于自适应波束成形算法的matlab性能仿真,对比SG和RLS两种方法. 2.测试软件版本以及运行结果展示 MATLAB2022a版本运行 3.核心程序 ........................…

深度学习基础(一)神经网络基本原理

之前的章节我们初步介绍了机器学习相关基础知识,目录如下: 机器学习基础(一)理解机器学习的本质-CSDN博客 机器学习基础(二)监督与非监督学习-CSDN博客 机器学习基础(四)非监督学…

智慧校园的未来已来!AI与数字孪生领航教育新时代

随着科技的飞速发展,人工智能(AI)和数字孪生技术正逐渐渗透到我们生活的方方面面,而在教育领域,它们的结合更是催生出一种全新的智慧校园模式。这种模式的出现,不仅预示着教育管理方式的彻底变革&#xff0…

Linux之用户跟用户组

目录 一、简介 1.1、用户 1.2用户组 1.3UID和GID 1.4用户账户分类 二、用户 2.1、创建用户:useradd 2.2、删除用户:userdel 2.3 、修改用户 usermod 2.4、用户口令的管理:passwd 2.5、切换用户 三、用户组 3.1、增加一个用户组:groupadd 3.…

linux 文本编辑命令【重点】

目录 vi&vim介绍 vim安装 vim使用 查找命令 find grep 文本编辑的命令,主要包含两个: vi 和 vim vi&vim介绍 作用: vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本 语法: vi file…