SpringBoot完整项目部署流程(软件安装-前后端部署)

SpringBoot完整项目部署流程

安装Jdk

使用XTFP工具将jdk的二进制发布包上传到Linux

SpringBoot完整项目部署流程(软件安装-前后端部署)_第1张图片

解压安装包

tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local

解压完毕

SpringBoot完整项目部署流程(软件安装-前后端部署)_第2张图片

配置环境变量,使用vim命令修改 /etc/profile文件,在文件末尾加入如下配置

JAVA_HOME=/usr/local/jdk1.8.0_171
PATH=$JAVA_HOME/bin:$PATH

重新加载profile文件,使更改的配置立即生效,命令为

source /etc/profile

检查安装是否成功,命令为

java -version

SpringBoot完整项目部署流程(软件安装-前后端部署)_第3张图片

安装Tomcat

使用XTFP工具将tomcat的二进制发布包上传到Linux

SpringBoot完整项目部署流程(软件安装-前后端部署)_第4张图片

解压安装包,命令为

tar -zxvf apache-tomcat-7.0.57.tar.gz -C /usr/local

解压完成

SpringBoot完整项目部署流程(软件安装-前后端部署)_第5张图片

进入Tomcat的bin目录启动服务,命令

SpringBoot完整项目部署流程(软件安装-前后端部署)_第6张图片

sh startup.sh

或者

./startup.sh

在这里插入图片描述

验证Tomcat启动是否成功

  • 查看启动日志
more /usr/local/apache-tomcat-7.0.57/logs/catalina.out 

SpringBoot完整项目部署流程(软件安装-前后端部署)_第7张图片

tail -50 /usr/local/apache-tomcat-7.0.57/logs/catalina.out 

SpringBoot完整项目部署流程(软件安装-前后端部署)_第8张图片

  • 查看进程
ps -ef | grep tomcat

在这里插入图片描述

防火墙操作

  • 查看防火墙操作
firewall-cmd --state

或者

systemctl status firewalld

SpringBoot完整项目部署流程(软件安装-前后端部署)_第9张图片

  • 暂时关闭防火墙
systemctl stop firewalld
  • 永久关闭防火墙
systemctl disable firewalld
  • 开启防火墙
systemctl start firewalld
  • 查看所有打开的端口
netstat -anp
  • 查询指定端口是否已开
firewall-cmd --query-port=666/tcp
  • 开放指定端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
  • 移除指定端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
  • 立即生效
firewall-cmd --reload
  • 查看开放的端口
firewall-cmd --zone=public --list-ports

开放8080端口,并访问

SpringBoot完整项目部署流程(软件安装-前后端部署)_第10张图片

SpringBoot完整项目部署流程(软件安装-前后端部署)_第11张图片

Redis安装

Redis安装(Linux环境只考虑)

下载地址:Redis

1. 下载安装最新版的gcc编译器

安装C语言的编译环境

yum install centos-release-scl scl-utils-build

yum install -y devtoolset-8-toolchain

scl enable devtoolset-8 bash

测试 gcc版本

gcc --version

2. 下载redis-6.2.1.tar.gz放/opt/soft目录

解压缩

tar -zxvf redis-6.2.1.tar.gz

进入目录 执行make命令

cd redis-6.2.1

make

如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件

SpringBoot完整项目部署流程(软件安装-前后端部署)_第12张图片

执行命令解决

make distclean

在redis-6.2.1目录下再次执行make命令(只是编译好)

SpringBoot完整项目部署流程(软件安装-前后端部署)_第13张图片

跳过make test 继续执行: make install

SpringBoot完整项目部署流程(软件安装-前后端部署)_第14张图片

安装目录/usr/local/bin

查看默认安装目录:

redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何

redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲

redis-check-dump:修复有问题的dump.rdb文件

redis-sentinel:Redis集群使用

redis-server:Redis服务器启动命令

redis-cli:客户端,操作入口

3. 前台启动(不推荐)

前台启动,命令行窗口不能关闭,否则服务器停止

SpringBoot完整项目部署流程(软件安装-前后端部署)_第15张图片

4. 后台启动(推荐)

备份redis.conf

拷贝一份redis.conf到其他目录

cp  /opt/redis-3.2.5/redis.conf  /myredis

后台启动设置daemonize no改成yes

修改redis.conf(128行)文件将里面的daemonize no改成 yes,让服务在后台启动

启动Redis

redis-server/myredis/redis.conf

用客户端访问:redis-cli

Redis关闭

单实例关闭

redis-cli shutdown

想要远程连接,修改配置文件

yes改为no
SpringBoot完整项目部署流程(软件安装-前后端部署)_第16张图片
可视化工具连接
修改配置文件
注释掉bind 127.0.0.1
SpringBoot完整项目部署流程(软件安装-前后端部署)_第17张图片
重启服务
测试连接
SpringBoot完整项目部署流程(软件安装-前后端部署)_第18张图片
成功!

安装Mysql

检测系统当前安装MySQL数据库

检查当前系统中安装的所有软件

rpm -qa

查询当前系统中名称带mysql的软件

rpm -qa | grep mysql

查询当前系统中安装的名称带mariadb的软件

rpm -qa | grep mariadb

在这里插入图片描述

卸载已经安装的冲突软件

rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64

MySQL安装包上传到Linux并解压到指定目录

mkdir /usr/local/mysql

tar -zxvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar.gz -C /usr/local/mysql

SpringBoot完整项目部署流程(软件安装-前后端部署)_第19张图片

进入mysql目录准备安装

先进行升级

yum update

依次执行下列命令

rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm

yum install net-tools

rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

启动mysql

查看mysql服务状态

systemctl status mysqld

启动mysql服务状态

systemctl start mysqld

开机启动

systemctl enable mysqld

查看已经启动的服务

netstat -tunlp

netstat -tunlp | grep mysql

查看mysql的进程

ps -ef |grep mysql

SpringBoot完整项目部署流程(软件安装-前后端部署)_第20张图片

登录MySQL数据库,查阅临时密码

查看文件内容

cat /var/log/mysqld.log

查看文件内容包含password的行信息

cat /var/log/mysqld.log | grep password

在这里插入图片描述


登录MySQL,修改密码,开放访问权限

mysql -u root -p 临时密码

修改密码

set global validate_password_length=4;      #设置密码长度最低数
set global validate_password_policy=LOW;	   #设置密码安全等级低		
set password=password('root');			   #设置密码为root

grant all on *.* to 'root'@'%'identified by 'root'; #开启访问权限

flush privileges;

SpringBoot完整项目部署流程(软件安装-前后端部署)_第21张图片

开放端口
查看开放的端口号

firewall-cmd --list-all

设置开放的端口号

firewall-cmd --add-service=http --permanent

firewall-cmd --add-port=3306/tcp --permanent

重启防火墙

firewall-cmd --reload

修改通配符为%

use mysql;

select Host,User from user;

update user set host = '%' where user ='root';

远程连接测试

SpringBoot完整项目部署流程(软件安装-前后端部署)_第22张图片

安装Irzsz

yum install lrzsz.x86_64

SpringBoot完整项目部署流程(软件安装-前后端部署)_第23张图片

输入

rz

SpringBoot完整项目部署流程(软件安装-前后端部署)_第24张图片

安装Git

yum list git

yum install git

SpringBoot完整项目部署流程(软件安装-前后端部署)_第25张图片

SpringBoot完整项目部署流程(软件安装-前后端部署)_第26张图片

安装Maven

tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local

修改配置文件,加入如下内容

vim /etc/profile

# maven配置
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PAT

source /etc/profile

mvn -version

# 修改配置内容如下
vim /usr/local/apache-maven-3.5.4/conf/settings.xml

<localRepository>/usr/local/repo</localRepository>

SpringBoot完整项目部署流程(软件安装-前后端部署)_第27张图片

SpringBoot完整项目部署流程(软件安装-前后端部署)_第28张图片

安装Nginx

安装依赖包

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

或者通过wget下载Nginx安装包

wget https://nginx.org/download/nginx-1.16.1.tar.gz

解压

tar -zxvf nginx-1.16.1.tar.gz

安装

cd nginx-1.16.1

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

make && make install

执行 ./configure报错

SpringBoot完整项目部署流程(软件安装-前后端部署)_第29张图片

安装依赖包

yum -y install pcre-devel openssl openssl-devel

安装成功

SpringBoot完整项目部署流程(软件安装-前后端部署)_第30张图片

make && make install

检查版本

cd /usr/local/nginx/sbin/

./nginx -v

./nginx -t

出现如下,即为正确

SpringBoot完整项目部署流程(软件安装-前后端部署)_第31张图片

启动Nginx

./nginx

开放80端口

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

firewall-cmd --reload

访问成功

SpringBoot完整项目部署流程(软件安装-前后端部署)_第32张图片

停止服务

./nginx -s stop

查看进程

ps -ef | grep nginx

重置配置文件

./nginx -s reload

配置全局命令

SpringBoot完整项目部署流程(软件安装-前后端部署)_第33张图片

vim /etc/profile

source /etc/profile

配置成功

在这里插入图片描述

项目打包(手动部署)

SpringBoot完整项目部署流程(软件安装-前后端部署)_第34张图片

上传到指定目录 /usr/local/app 目录下

SpringBoot完整项目部署流程(软件安装-前后端部署)_第35张图片

手工部署项目

改为后台运行,并将日志输出到日志文件

nohup java -jar boot工程.jar &>hello.log &

SpringBoot完整项目部署流程(软件安装-前后端部署)_第36张图片

浏览器输入访问项目

访问成功

SpringBoot完整项目部署流程(软件安装-前后端部署)_第37张图片

SpringBoot完整项目部署流程(软件安装-前后端部署)_第38张图片

自动化执行脚本(自动部署)

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=helloworld

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Stop Process...'
    kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从Git仓库拉取最新代码
cd /usr/local/helloworld

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`

cd target

echo 启动项目
nohup java -jar helloworld-1.0-SNAPSHOT.jar &> helloworld.log &
echo 项目启动完成

通过Shell脚本自动部署项目

设置静态ip

修改文件 /etc/sysconfig/network-scripts/ifcfg-ens33

ifcfg-ens33 每个人不同,一般都是ifcfg-ensxxxxxxxxxx

HWADDR=00:0C:29:8C:9F:BF
TYPE=Ethernet
BOOTPROTO=static  #使用静态IP地址,默认为dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=dfebdc59-a7da-4377-ac8e-e0346a8b71f6
ONBOOT=yes #开机是否使用
IPADDR=192.168.18.128 #设置的静态IP地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.18.2  #网关地址
DNS1=218.2.135.1 #DNS服务器

注意

SpringBoot完整项目部署流程(软件安装-前后端部署)_第39张图片

前端部署

打包前端项目dist,上传到指定nginx下的指定的目录

SpringBoot完整项目部署流程(软件安装-前后端部署)_第40张图片

更改nginx配置文件

cd /usr/local/nginx/conf/

vim nginx.conf
	 location / {
            root   html/dist;
            index  index.html index.htm;
        }

	location ^~ /api/ {
		rewrite ^/api/(.*) /$1 break;
		proxy_pass http://192.168.18.128:8080;
	
	}

SpringBoot完整项目部署流程(软件安装-前后端部署)_第41张图片

下面的location配置根据项目来配置的,每个项目不同

后端部署

项目打包,上传到指定目录

SpringBoot完整项目部署流程(软件安装-前后端部署)_第42张图片

在此目录下执行

java -jar boot工程.jar

改为后台运行并日志记录

nohup java -jar boot工程.jar &>hello.log &

也可以灵活的指定外部配置文件启动

java -jar boot工程.jar --spring.config.location=classpath:application.yml

SpringBoot完整项目部署流程(软件安装-前后端部署)_第43张图片

访问项目

SpringBoot完整项目部署流程(软件安装-前后端部署)_第44张图片

查看控制台正常打印

SpringBoot完整项目部署流程(软件安装-前后端部署)_第45张图片

至此项目部署成功!!!

你可能感兴趣的:(知识点补充,spring,boot,后端,java,容器,linux,docker)