Ubuntu部署SpringBoot项目

文章目录

  • Ubuntu部署SpringBoot项目
    • 一、JDK
      • 1.1 下载
      • 1.2 解压JDK配置环境变量
      • 1.3 是否安装成功
      • 1.4 开机自启
        • 1.4.1 修改脚本
        • 1.4.2 设置开机自启
    • 二、Redis
      • 2.1 下载
      • 2.2 解压Redis并安装
      • 2.3 开机自启
        • 2.3.1 修改脚本
        • 2.3.2 设置开机自启
    • 三、Nginx
      • 3.1 安装Nginx依赖包
        • 3.1.1 prce-devel、zlib-devel、openssl-devel
        • 3.1.2 gcc-c++
      • 3.2 解压Nginx并安装
      • 3.3 开机自启
        • 3.3.1 修改脚本
        • 3.3.2 设置开机自启

Ubuntu部署SpringBoot项目

一、JDK

1.1 下载

OpenJDK11下载地址

1.2 解压JDK配置环境变量

# 创建Java Home路径
sudo mkdir /usr/java

# 复制openjdk至/usr/java目录下,并解压openjdk
cp openjdk-11.0.1_linux-x64_bin.tar.gz /usr/java
tar -zxvf openjdk-11.0.1_linux-x64_bin.tar.gz

# vim打开配置文件
vim + /etc/profile

# 在最后两行添加命令
export JAVA_HOME=/usr/java/jdk-11.0.1
export PATH=$JAVA_HOME/bin:$PATH

# 重启配置文件使配置生效
source /etc/profile

1.3 是否安装成功

# 输入以下两个命令,如果出现JDK版本,说明安装成功
java -version
javac -version

1.4 开机自启

1.4.1 修改脚本
  • 复制启动和停止脚本
cp start_app.sh /home/rt_app/
cp stop_app.sh /home/rt_app/
  • 启动脚本
#!/bin/sh
# jdk目录
export JAVA_HOME=/usr/java/jdk-11.0.1
export PATH=$PATH:$JAVA_HOME/bin
# 启动项目
nohup java -jar /home/rt_app/target/xxx.jar &
# 导出项目启动的pid(用于关闭)
echo $! > /var/run/xxx.pid
  • 停止脚本
#!/bin/sh
PID=$(cat /var/run/xxx.pid)
kill -9 $PID
  • 服务脚本
[Unit]
Description=app-service
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/home/rt_app/start_app.sh
ExecStop=/home/rt_app/stop_app.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
1.4.2 设置开机自启
# 复制app.service至/etc/systemd/system/目录下
cp app.service /etc/systemd/system/

# 设置开机启动
systemctl daemon-reload
systemctl enable app
systemctl start app

# 取消开机自启动
systemctl disable app

# 查看服务当前状态
systemctl status app

# 启动服务
systemctl start app

# 停止服务
systemctl stop app

# 重启服务
systemctl restart app

二、Redis

2.1 下载

Redis6.2.5下载地址

2.2 解压Redis并安装

# 复制redis至/usr/java目录下,并解压redis
cp redis-6.2.5.tar.gz /usr/java
tar -zxvf redis-6.2.5.tar.gz

# 进入redis-6.2.5目录,安装
cd redis-6.2.5
make && make install

# 复制redis.conf文件至/usr/local/bin/目录下
cp redis.conf /usr/local/bin/

# 启动redis-server
./redis-server redis.conf

# 验证是否启动成功
./redis-cli

2.3 开机自启

2.3.1 修改脚本
  • 服务脚本
[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=root
Group=root
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target
  • 配置文件
# 修改bind
bind 127.0.0.1 -::1 改为 bind 0.0.0.0 -::1

# 修改daemonize
daemonize no 改为 daemonize yes

# 修改requirepass设置密码
2.3.2 设置开机自启
# 复制redis.service至/etc/systemd/system/目录下
cp redis.service /etc/systemd/system/

# 设置开机启动
systemctl daemon-reload
systemctl enable redis
systemctl start redis

# 取消开机自启动
systemctl disable redis

# 查看服务当前状态
systemctl status redis

# 启动服务
systemctl start redis

# 停止服务
systemctl stop redis

# 重启服务
systemctl restart redis

三、Nginx

3.1 安装Nginx依赖包

需要先依次安装gcc-c++, pcre-devel, zlib, zlib-devel, openssl, openssl-devel这几个依赖

3.1.1 prce-devel、zlib-devel、openssl-devel
# 进入每个目录下,运行如下命令即可
rpm -Uvh --nodeps --force *.rpm
3.1.2 gcc-c++
# 进入gcc-c++目录下,运行install.sh
sh install.sh

3.2 解压Nginx并安装

# 复制nginx至/usr/java目录下,并解压nginx
cp nginx-1.16.1.tar.gz /usr/java
tar -zxvf nginx-1.16.1.tar.gz

# 进入nginx-1.16.1目录,安装
cd nginx-1.16.1
./configure
make && make install

# 复制nginx.conf至/usr/local/nginx/conf目录下
cp nginx.conf /usr/local/nginx/conf/nginx.conf

# 给logs文件夹复制777权限, 若没有需要创建一个
mkdir /usr/local/nginx/logs/
chmod 777 /usr/local/nginx/logs/

# 启动nginx
cd /usr/local/nginx/sbin/
./nginx

# 停止nginx
cd /usr/local/nginx/sbin/
./nginx -s stop

3.3 开机自启

3.3.1 修改脚本
  • 服务脚本
[Unit]
Description=nginx - high performance web server
After=nginx.service
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
Execenable=/usr/local/nginx/sbin/nginx
[Install]
WantedBy=multi-user.target
  • 配置文件
location / {
    root   radar_training;
	index  index.html index.htm;
}

location /bts/radar/training {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    proxy_connect_timeout 300;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    chunked_transfer_encoding off;

    proxy_pass http://127.0.0.1:9092/bts/radar/training/;
}

location /bts/c/server {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    proxy_connect_timeout 300;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    chunked_transfer_encoding off;

    proxy_pass http://127.0.0.1:8020/bts/c/server/;
}
3.3.2 设置开机自启
# 复制nginx.service至/etc/systemd/system/目录下
cp nginx.service /etc/systemd/system/

# 设置开机启动
systemctl daemon-reload
systemctl enable nginx
systemctl start nginx

# 取消开机自启动
systemctl disable nginx

# 查看服务当前状态
systemctl status nginx

# 启动服务
systemctl start nginx

# 停止服务
systemctl stop nginx

# 重启服务
systemctl restart nginx

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

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

相关文章

Python创建MySQL数据库

一、使用Docker部署本地MySQL数据库 docker run --restartalways -p 3307:3306 --name mysql -e MYSOL_ROOT_PASSWORDlms123456 -d mysql:8.0.25 参数解析: 用户名:root 密码:lms123456 端口:3307 二、在Pycharm开发工具中配置连接MySQL数据库 三、安装zdppy_mysql pip inst…

【LabVIEW学习篇 - 2】:LabVIEW的编程特点

文章目录 LabVIEW的编程特点图形编程天然并行运行基于数据流运行 LabVIEW的编程特点 图形编程 LabVIEW使用图形化的图形化编程语言(G语言),用户通过在程序框图中拖放和连接各种节点(Nodes)来编写程序。每个节点代表一…

tobias实现支付宝支付

tobias是一个为支付宝支付SDK做的Flutter插件。 如何使用 你需要在pubspec.yaml中配置url_scheme。url_scheme是一个独特的字符串,用来重新启动你的app,但是请注意字符串“_”是不合法的。 在iOS端,你还需要配置并传入一个universal link。…

动手学深度学习(Pytorch版)代码实践 -循环神经网络-53语言模型和数据集

53语言模型和数据集 1.自然语言统计 引入库和读取数据: import random import torch from d2l import torch as d2l import liliPytorch as lp import numpy as np import matplotlib.pyplot as plttokens lp.tokenize(lp.read_time_machine())一元语法&#xf…

利用Redis bitmap 实现签到案例

数据库实现 设计签到功能对应的数据库表 CREATE TABLE sign_record (id bigint NOT NULL AUTO_INCREMENT COMMENT 主键,user_id bigint NOT NULL COMMENT 用户id,year year NOT NULL COMMENT 签到年份,month tinyint NOT NULL COMMENT 签到月份,date date NOT NULL COMMENT 签…

物联网行业等保有什么要求

中国网络安全等级保护制度(简称“等保”)对物联网行业有特定的要求,以确保物联网系统的安全性。等保2.0在原有安全通用要求的基础上,增加了针对新技术如云计算、物联网、移动互联网等的扩展要求。以下是一些关键的物联网安全扩展要…

C语言编译和编译预处理

编译预处理 • 编译是指把高级语言编写的源程序翻译成计算机可识别的二进制程序(目标程序)的过程,它由编译程序完成。 • 编译预处理是指在编译之前所作的处理工作,它由编译预处理程序完成 在对一个源程序进行编译时,…

小红书矩阵系统源码:赋能内容创作与电商营销的创新工具

在内容驱动的电商时代,小红书凭借其独特的社区氛围和用户基础,成为品牌营销和个人创作者不可忽视的平台。小红书矩阵系统源码,作为支撑这一平台的核心技术,提供了一系列的功能和优势,助力用户在小红书生态中实现更高效…

简体一键转繁体,智能命名神器,轻松将文件名翻译为繁体中文并精准复制至指定文件夹!

在信息爆炸的时代,文件管理和命名变得愈发重要。你是否曾经因为文件名混乱、不易识别而头疼不已?是否想要让文件名称更符合你的阅读习惯,却又因为语言转换的繁琐而望而却步?今天,我们为你带来了一款文件改名神器——文…

S32DS S32 Design Studio for S32 Platform 3.5 软件安装离线激活

问题描述 重新下载安装 NXP s32系列芯片的集成开发环境(IDE) S32DS S32 Design Studio,当前版本 S32 Design Studio for S32 Platform 3.5,安装时遇到激活问题 在线激活,激活码哪里来? s32ds 不是免费的&a…

python: create Envircomnet in Visual Studio Code 创建虚拟环境

先配置python开发环境 1.在搜索栏输入“>" 或是用快捷组合键ctrlshiftP键 就会显示”>",再输入"python:" 选择已经安装好的python的版本,选定至当前项目中,都是按回车 就可以看到创建了一个虚拟环境的默认的文件夹名".venv" 2 …

Mybatis原生使用

一、MyBatis初次使用 2.1 环境搭建步骤 MyBatis 的 API : https://mybatis.org/mybatis-3/zh/getting-started.html 1.引入依赖包 2.准备核心配置件 db.properties drivercom.mysql.cj.jdbc.Driver urljdbc:mysql://123.57.206.19:3306/demo?useUnicodetrue&am…

PMP–知识卡片--SWOT分析

记忆 SWOT:优劣鸡血; 记忆2: “两条线画成四象限”,即自身优势S/劣势W外部机会O/威胁T,如图: 定义 SWOT分析从优势、劣势、机会、威胁四个角度进行分析,常用于战略管理、项目风险识别。 项…

关于 Mac 系统 .DS_store 文件的起源

原文:Arno - 2006.10.01 (前排提醒:可以在 .gitignore 中添加 .DS_Store,否则 git 仓库会存储这个和项目无关的文件。) 如果你是 Mac 用户,曾经将文件从 Mac 传输到 Windows,那么可能对 .DS_S…

渲染回调函数将音频传给音频单元

渲染回调函数将音频传给音频单元 渲染回调函数将音频传给音频单元了解音频单元渲染回调函数 渲染回调函数将音频传给音频单元 要将音频从磁盘或内存提供到音频单元输入总线,需使用符合 AURenderCallback 原型的渲染回调函数进行传输。当需要另一片样本帧时&#xf…

实现模型贴图的移动缩放旋转

技术:threejscanvasfabric 效果图: 原理:threejs中没有局部贴图的效果,只能通过map 的方式贴到模型上,所以说换一种方式来实现,通过canvasfabric来实现图片的移动缩放旋转,然后将整个画布以map…

【智能算法应用】麻雀搜索算法SSA优化Kmeans图像分割

目录 1.算法原理2.数学模型3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】麻雀搜索算法(SSA)原理及实现 2.数学模型 Kmeans是一种无监督的聚类算法,由于参数简洁,时间复杂度低已成功应用于图像分割,取得了良好的分割效果。但传统的 K 均值聚…

Go-知识测试-性能测试

Go-知识测试-性能测试 1. 定义2. 例子3. testing.common 测试基础数据4. testing.TB 接口5. 关键函数5.1 testing.runBenchmarks5.2 testing.B.runN5.3 testing.B.StartTimer5.4 testing.B.StopTimer5.5 testing.B.ResetTimer5.6 testing.B.Run5.7 testing.B.run15.8 testing.B…

无人机便携式侦测干扰设备(定全向)技术详解

无人机便携式侦测干扰设备(定全向)是一种专门针对无人机进行侦测和干扰的设备。它具备定向和全向两种工作模式,能够覆盖较宽的频率范围,有效侦测并干扰无人机与遥控器之间的通信信号,从而达到控制或驱离无人机的目的。…

1999-2022年企业持续绿色创新水平数据

企业持续绿色创新水平数据为研究者提供了评估企业在绿色技术领域创新持续性和能力的重要视角。以下是对企业持续绿色创新水平数据的介绍: 数据简介 定义:企业持续绿色创新水平反映了企业在一定时期内绿色专利申请的持续性和创新能力。计算方法&#xf…