从0到1学会在Linux中部署SpringBoot+Vue前后端分离项目

news2025/1/4 17:37:56

1.打包Vue前端项目

使用npm run build命令打包前端项目

在这里插入图片描述前端项目会

打包到dist文件夹中

在这里插入图片描述

2.打包SpringBoot后端项目

点击生命周期的package命令,对后端项目进行打包

在这里插入图片描述

target目录下的renren-fast.jar就是刚刚打包的后端项目

在这里插入图片描述
后端打包项目有一个小技巧,就是打包项目时排除lib目录,单独输出lib目录,lib改变时再重新上传至服务器,避免每次打包的项目过大和浪费时间(推荐)
如果觉得这样做麻烦,那就打包是不必要排除lib目录

<build>
		<finalName>${project.artifactId}</finalName>
		<extensions>
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-ssh</artifactId>
				<version>2.8</version>
			</extension>
		</extensions>
		<plugins>
		<!--	打包时排除lib,避免每次打出来的jar很大-->
			<!-- ==================== 依赖jar 优化start ========================== -->
			<!-- lib包,如果有新引入的jar包需要把lib包下的jar更新到服务器下,
            // 压缩后jar包的启动指令 nohup java -Dloader.path="/root/lib/" -jar xxx.jar &
            // 未压缩jar包的启动指令 nohup java -jar xxx.jar &"
            -->
                                                <!-- 压缩jar包,lib文件夹重新输出到另一个目录中,如果lib中内容改变可以在重新上传改变的内容到服务器对应lib目录 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<!-- 依赖包输出目录,将来不打进jar包里 -->
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
							<excludeTransitive>false</excludeTransitive>
							<stripVersion>false</stripVersion>
							<includeScope>runtime</includeScope>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- 压缩jar包,打出来的jar中去除lib文件夹,减小jar包的大小 -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<layout>ZIP</layout>
					<includes>
						<include>
							<groupId>nothing</groupId>
							<artifactId>nothing</artifactId>
						</include>
					</includes>
				</configuration>
			</plugin>
			<!-- ==================== 依赖jar 优化end ========================== -->
			<!--	打包时排除lib-->


		</plugins>
</build>

3.租一个服务器(腾讯云、阿里云等),配置基础设置

配置防火墙,一般开放3306、80、22、443端口,需要的再开放

在这里插入图片描述

在系统运行稳定后,可以生成快照,系统出错后可以回滚

在这里插入图片描述

4.本地安装XShell、Xftp,并上传前后端项目到服务器

单独拆分lib:上传dist,lib,renren-fast.jar(推荐)
不单独拆分lib:上传dist,renren-fast.jar
在这里插入图片描述

5.部署Linux基本环境,包括MySQL、Nginx、Java运行环境(JDK)、Python运行环境

Linux中安装MySQL

Linux中安装Java

Linux上卸载并部署python环境

Linux中安装Nginx

6.配置相关文件,并后台启动java项目

配置profile文件:配置全局的java和python环境

vim /etc/profile

在profile文件后面加上一下代码

export JAVA_HOME=/usr/local/jdk1.8.0_291  export 
CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ export 
PATH=$PATH:$JAVA_HOME/bin

export PYTHON_HOME=/usr/local/python3
export PATH=${PYTHON_HOME}/bin:$PATH

使之生效

source /etc/profile

配置nginx.conf文件

cd /usr/local/nginx/conf
vim nginx.conf

修改前端监听的端口、修改前端项目的目录、修改后端项目的接口路径

 server {
        listen       8000;
        server_name  localhost;

           location / {
            root  /root/dist;  #这里先写vue前端项目的目录
            index  index.html index.htm;
        }

        location /renren-fast/ {
            proxy_pass   http://43.139.168.162:8080/renren-fast/; #这里填写后端的接口路径
        }
}


./nginx -s reload   #重启

后台启动java项目

// 压缩后jar包的启动指令(推荐,单独拆分lib)

nohup java -Dloader.path="/root/lib/" -jar renren-fast.jar &
             

// 未压缩jar包的启动指令

nohup java -jar renren-fast.jar &

7.其他:Java调用Python技术

linux中使用定时任务用java调用python程序

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

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

相关文章

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)一:项目规划及初始化

一、项目内容 使用vue3+Layui实现通用管理系统前端,使用vue3+layui搭建系统UI界面,使用nodejs搭建模拟web服务器,使用echarts实现系统可视化模块,可以此项目为基础进行扩展开发,快速搭建管理系统,具体内容如下:   1. 常见功能实现: 实现用户登录(用户名密码登录、手…

【c语言】 -- 详解数组篇

&#x1f4d5;博主介绍&#xff1a;目前大一正在学习c语言&#xff0c;数据结构&#xff0c;计算机网络。 c语言学习&#xff0c;是为了更好的学习其他的编程语言&#xff0c;C语言是母体语言&#xff0c;是人机交互接近底层的桥梁。 本章来学习数据的存储。 让我们开启c语言学…

XSS测试-业务安全测试实操(11)

XSS测试 测试原理和方法 跨站脚本漏洞是Web应用程序在将数据输出到网页的时候存在问题,导致恶意攻击者可以往Web页面里插入恶意JavaScript、HTML代码,并将构造的恶意数据显示在页面的漏洞中。攻击者一般利用此漏洞窃取或操纵客户会话和 Cookie,用于模仿合法用户,从而使攻击…

CVE-2010-2883-PDF漏洞提权复现过程

第二步&#xff0c;打开Kali Linux渗透机使用命令msfconsole进入Metasploit渗透测试平台&#xff0c;使用模块adobe_cooltype_sing生成木马文件。 输入search adobe_cooltype_sing命令搜索Adobe渗透模块 与漏洞相关的模块有两个&#xff0c;编号为0的模块是使用本地的服务器挂…

项目实战:防刷

你好&#xff0c;我是田哥 最近在搞充电桩项目&#xff0c;用户使用短信验证码形式进行注册和登录&#xff0c;那么问题来了&#xff1f; 分布式微服务项目实战&#xff1a;充电桩项目 实战分布式事务【SeataSpring Cloud】 项目实战&#xff1a;自定义异常和统一参数验证&…

lazarus开发:快速读写excel文件的神奇控件——FPSpreadsheet

目录 1 简介 2 用wps制作一个简单的工资表 3 编译一下自带的演示程序 1 简介 FPSpreadsheet是一个功能强大的控件库&#xff0c;用于读取和写入电子表格文件。使用该控件库开发的软件&#xff0c;能够在不安装电子表格应用程序的情况下&#xff0c;快速读出、写入电子表格文…

详解Hystrix

目录 1.微服务中的容错 1.1.服务雪崩 1.2.解决办法 2.hystrix 2.1.概述 2.2.项目结构及依赖 2.3.代码示例 2.3.1.注册中心 2.3.2.服务调用者 2.3.3.服务提供者 2.4.服务降级 2.4.1.单点响应 2.4.2.默认响应 2.4.3.前置响应 2.5.服务熔断 2.5.1.概述 2.5.2.使用…

【C语言复习】第一篇、关于我的C语言的复习路线

目录 第一部分、前言 第二部分、学习视频 第三部分、我的建议 第一部分、前言 首先想谈一下为啥都读研究生的我还在学习C语言&#x1f602;&#xff0c;说起来我认为挺搞笑的&#xff0c;一句话解释就是&#xff1a;本科上课的时候&#xff0c;耳朵打苍蝇去&#xff0c;哈哈。…

面向快速反应的工程团队--QRF团队模型

很多团队都纠结于产品业务需求和各种不断插入的中断请求而无法自拔&#xff0c;这篇文章介绍了QRF团队模型&#xff0c;将产品业务开发和紧急响应团队区分开&#xff0c;为重要而紧急的事情提供单独的处理通道&#xff0c;从而帮助团队能够聚焦在重要的事情上。原文&#xff1a…

Nucleo-F411RE (STM32F411)LL库体验 7 - 低功耗(睡眠、待机)

Nucleo-F411RE &#xff08;STM32F411&#xff09;LL库体验 7 - 低功耗&#xff08;睡眠&#xff09; 1、简述 F411有三种模式 Sleep mode、stop mode 、standby mode。 其中SleepMode 、Stop Mode 可选择WFI 以及WFE&#xff0c;两者的区别在于&#xff0c;前者任何中断都能…

编译原理笔记(哈工大编译原理)

文章目录 前言概论语言与文法基本概念字母表串字母表与串的联系 文法语言推导和规约句型与句子语言与字母表 文法的分类 前言 说实话&#xff0c;我不是很想上这门课&#xff0c;确实没什么大用&#xff0c;虽然我觉得这门课学一学也挺好&#xff0c;但是我觉得弄8个大实验就真…

socket地址的通配符地址、环回地址

今天在写ServerSocket的时候&#xff0c;遇到了socket地址的通配符地址、环回地址。 package com.thb;import java.io.IOException; import java.net.InetAddress; import java.net.ServerSocket;public class ServerSocketMain {public static void main(String[] args) {try…

UI Tool Kit 使用

Unity 2021 已经把UIBuilder 内置了&#xff0c;项目组也打算 后续工具采用 toolkit来写&#xff0c;这边也是找了一下教程熟悉了一下。 UI 工具包 - Unity 手册 首先 先创建一个EditorWindow 会生成相应的C#&#xff0c;UXML,USS代码 默认会把显示的MenuItem代码生成&#xf…

记录--设计一个可选择不连续的时间范围的日期选择器

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 npm包&#xff1a;sta-datepicker效果图 需求 普通的时间选择器要么只能单选&#xff0c;要么只能选范围&#xff0c;不可以随意选择若干个时间&#xff0c;同时大多数现成的时间选择器选择结束会收起…

EasyExcel实战与笔记

概述 Excel导入导出是业务开发中非常常见的需求。本文记录一下如何快速入门使用EasyExcel&#xff0c;深度实战&#xff0c;以及遇到的问题。 入门 使用EasyExcel导入如下依赖即可&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactI…

java-代码生成器——有了代码生成器两个小时的工作量2分钟完成了

代码生成器 &#x1f942;代码生成器&#x1f33b;1. 第一步引用相关依赖&#x1f357;2. 第二步编写代码 CodeGet.java&#x1f969;3. 第三步运行查看结果&#x1f356;4. 第四步总结一下 &#x1f942;代码生成器 只需要创建好表的结构&#xff0c;代码生成器通过简单的配置…

Linux知识点 -- 进程控制(二)

Linux知识点 – 进程控制&#xff08;二&#xff09; 文章目录 Linux知识点 -- 进程控制&#xff08;二&#xff09;一、进程程序替换1.概念2.替换原理3.进程替换的操作4.使用exec函数执行自己写的程序5.使用exec函数执行其他语言的程序 二、编写一个简易的shell 一、进程程序替…

LeetCode 892. Surface Area of 3D Shapes【数组,数学】简单

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

KCC@北京启动,为一个城市做好开源!

KCC&#xff08;开源社城市社区&#xff09;北京区在6月12日正式成立&#xff0c;吸引了众多开源爱好者和技术开发者参与。现场举行的活动围绕 “为一个城市做好开源” 的话题展开讨论&#xff0c;包括开发者关系、开源背后的无用之用、开源在中国的变化、开源的困难与挑战以及…