【部署】将项目部署到云服务器
目录
1.获得服务器
2.连接到云服务器
3.配置环境
3.1.Java(运行后端所需)
3.2.MySQL数据库
3.3.Nginx(运行前端所需)
3.4. Node.js(构建前端所需)
4.打包项目
4.1.打包后端项目
4.2.打包前端项目
5.上传项目到服务器
5.1.上传后端项目
5.2.上传前端项目
6.配置后端服务
6.1.启动后端应用
6.2.配置防火墙
7.配置 Nginx 反向代理
7.1.编辑 Nginx 配置
8.访问应用
将项目部署到云服务器(mac 终端版)
1.获得服务器
在阿里云或腾讯云租一个服务器
2.连接到云服务器
打开 mac 终端,使用 ssh 连接到云服务器
ssh user@your-server-ip
将 user 替换为你的用户名,your-server-ip 为服务器 IP 地址
(如果提示首次接受主机密钥,输入yes)
3.配置环境
3.1.Java(运行后端所需)
-
安装 OpenJDK
以 JDK8 为例
sudo yum install java-1.8.0-openjdk -y
-
验证 Java 安装
java -version
如果显示 Java 版本信息,则安装成功
3.2.MySQL数据库
-
安装 MySQL
sudo yum install mysql-server -y
-
启动 MySQL
sudo systemctl start mysqld
-
配置安全选项
sudo mysql_secure_installation
-
登录 MySQL 并创建数据库
mysql -u root -p
3.3.Nginx(运行前端所需)
-
安装 Nginx
sudo yum install nginx -y
-
启动并检查 Nginx 服务
sudo systemctl start nginx #启动 Nginx
sudo systemctl enable nginx #设置自启动
nginx -v #查看版本
3.4. Node.js(构建前端所需)
-
安装 Node.js
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
-
验证安装
node -v
npm -v
4.打包项目
4.1.打包后端项目
mvn clean package
jar 包在 target 目录下
4.2.打包前端项目
npm run build:prod
Vite 默认会将打包后的静态资源生成在 dist 文件夹中
5.上传项目到服务器
5.1.上传后端项目
- 将
.jar
文件上传到服务器
假设 .jar
文件路径为 target/employment.jar
,服务器目标路径为 /opt/employment/
:
scp target/employment.jar user@your-server-ip:/opt/employment/
将 user
替换为你的服务器用户名,your-server-ip
替换为服务器 IP 地址。
- 确保
.jar
文件已经成功上传到目标路径/opt/employment/
5.2.上传前端项目
- 将前端打包后的
dist
目录上传到服务器上:
scp -r dist user@your-server-ip:/var/www/html/
此命令会将前端项目的静态资源上传到服务器的 /var/www/html/
目录,这个目录是 Nginx 的默认访问根目录
6.配置后端服务
6.1.启动后端应用
- 在服务器上进入后端
.jar
文件所在目录:
cd /opt/employment/
- 启动后端应用:
java -jar employment.jar
后端服务会启动并监听相应的端口,默认情况下是 8080
。可以根据需要修改端口
- 配置后端服务开机自启动(使用
systemd
):
创建一个新的 systemd
服务文件 /etc/systemd/system/employment.service
,内容如下:
[Unit]
Description=Employment System Backend
After=network.target[Service]
User=root
ExecStart=/usr/bin/java -jar /opt/employment/employment.jar
SuccessExitStatus=143
TimeoutStopSec=10
Restart=always[Install]
WantedBy=multi-user.target
保存文件后,执行以下命令使其生效并启动服务:
sudo systemctl daemon-reload
sudo systemctl start employment.service
sudo systemctl enable employment.service
6.2.配置防火墙
确保服务器的防火墙允许访问所需端口(如 8080
端口):
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
7.配置 Nginx 反向代理
7.1.编辑 Nginx 配置
- 打开 Nginx 配置文件:
sudo vim /etc/nginx/nginx.conf
- 添加反向代理配置,将请求转发到后端 Java 应用。假设后端应用运行在
8080
端口,配置如下:
server {listen 80;server_name your-domain.com; # 替换为你的域名或 IPlocation / {root /var/www/html; # 指向前端项目所在目录index index.html;}location /api/ {proxy_pass http://localhost:8080; # 将 /api 请求转发到后端服务proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
- 保存并退出后,检查 Nginx 配置是否正确:
sudo nginx -t
- 重新加载 Nginx 配置使更改生效:
sudo systemctl reload nginx
8.访问应用
- 在浏览器中访问你的服务器 IP 或域名,前端页面应该能够正常加载
- 后端 API 请求(如
/api/
)会通过 Nginx 反向代理转发到后端应用
相关文章:
【部署】将项目部署到云服务器
目录 1.获得服务器 2.连接到云服务器 3.配置环境 3.1.Java(运行后端所需) 3.2.MySQL数据库 3.3.Nginx(运行前端所需) 3.4. Node.js(构建前端所需) 4.打包项目 4.1.打包后端项目 4.2.打包前端项目…...
微软宣布Win11 24H2进入新阶段!设备将自动下载更新
快科技1月19日消息,微软于1月16日更新了支持文档,宣布Windows 11 24H2进入新阶段。 24H2更新于2024年10月1日发布,此前为可选升级,如今微软开始在兼容的Windows 11设备上自动下载并安装24H2版本。 微软表示:“运行Wi…...
傅里叶变换在语音识别中的关键作用
在语音识别中,傅里叶变换起着至关重要的作用,主要体现在以下几个方面: 一、时域到频域的转换 语音信号的特点 语音信号是一种时域信号,它随时间变化。例如,当我们说话时,声带的振动产生声波,这…...
面试-业务逻辑2
应用 给定2个数组a、b,若a[i] b[j],则记(i,j)为一个二元数组,求具体的二元数组及其个数。 实现 a input("请输入数组a的元素个数:") # print(a) a_list list(map(int, input("请输入数组a的元素,…...
【20】Word:小许-质量管理-论文❗
目录 题目 NO1.2.3.4.5 NO6.7 NO8 NO9 NO10.11 题目 NO1.2.3.4.5 另存为“Word.docx”文件在考生文件夹下,F12Fn是另存为的作用布局→页面设置对话框→纸张:大小A4→页边距:上下左右不连续ctrl选择除表格外的所有内容→开始→字体对…...
Python数据分析案例70——基于神经网络的时间序列预测(滞后性的效果,预测中存在的问题)
背景 这篇文章可以说是基于 现代的一些神经网络的方法去做时间序列预测的一个介绍科普,也可以说是一个各种模型对比的案例,但也会谈一谈自己做了这么久关于神经网络的时间序列预测的论文,其中一些常见的模式及它们存在的问题以及效果&#x…...
Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正
Kotlin Bytedeco OpenCV 图像图像54 透视变换 图像矫正 1 添加依赖2 测试代码3 测试结果 在OpenCV中,仿射变换(Affine Transformation)和透视变换(Perspective Transformation)是两种常用的图像几何变换方法。 变换方…...
PyTorch使用教程(11)-cuda的使用方法
1. 基本概念 CUDA(Compute Unified Device Architecture)是NVIDIA开发的一种并行计算平台和编程模型,专为图形处理器(GPU)设计,旨在加速科学计算、工程计算和机器学习等领域的高性能计算任务。CUDA允许开发…...
微软开源AI Agent AutoGen 详解
AutoGen是微软发布的一个用于构建AI Agent系统的开源框架,旨在简化事件驱动、分布式、可扩展和弹性Agent应用程序的创建过程。 开源地址: GitHub - microsoft/autogen: A programming framework for agentic AI 🤖 PyPi: autogen-agentchat Discord: https://aka.ms/auto…...
上位机工作感想-2024年工作总结和来年计划
随着工作年限的增增长,发现自己越来越不喜欢在博客里面写一些掺杂自己感想的东西了,或许是逐渐被工作逼得“成熟”了吧。2024年,学到了很多东西,做了很多项目,也帮别人解决了很多问题,唯独没有涨工资。来这…...
js: 区分后端返回数字是否为null、‘-’ 或正常number类型数字。
问: 这是我的代码<CountTo v-if!isNaN(Number(item.num))> <span v-else>{{item.num}}</span> 我希望不是null的时候走countTo,是null的时候直接<span>{{item.num}}</span>显示 回答: 最终结果: …...
C#中字符串方法
字符串属性:Lenght 长度比最大索引大1 string str "frerfgd"; 1.可以通过索引,获取字符串中的某一个字符,下标“0,1.......” Console.WriteLine(str[0]);//f Console.WriteLine(str[1]);//r //Console.WriteLine(s…...
flutter在使用gradle时的加速
当我使用了一些过时的插件的时候,遇到了一些问题 比如什么namespace 问题等,因为有些插件库没有更新了,或者最新版本处于测试阶段 于是我就删除这些旧插件(不符合我要求的插件) 于是根据各论坛的解决方法去做了以下的工作 1:项目中删除了这…...
SpringCloud+Vue+Python人工智能(fastAPI,机器学习,深度学习)前后端架构各功能实现思路——主目录(持续更新)
随着公司业务的增加,公司需要一个javapython人工智能相互配合架构,正常网站业务用java来做,而ai,例如电价预测等回归任务,以及大模型预测全网负荷,新能源出力等任务,使用python通过fastapi暴露接…...
【GIS操作】使用ArcGIS Pro进行海图的地理配准(附:墨卡托投影对比解析)
文章目录 一、应用场景二、墨卡托投影1、知识点2、Arcgis中的坐标系选择 三、操作步骤1、数据转换2、数据加载3、栅格投影4、地理配准 一、应用场景 地理配准是数字化之前必须进行的一项工作。扫描得到的地图数据通常不包含空间参考信息,需要通过具有较高位置精度的…...
C#,入门教程(03)——Visual Studio 2022编写彩色Hello World与动画效果
C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net/beijinghorn/article/details/123350910 C#,入门教程(02)—— Visual Studio 2022开发环境搭建图文教程https://blog.csdn.net/beijinghorn/article/detail…...
使用 ChatGPT 生成和改进你的论文
文章目录 零、前言一、操作引导二、 生成段落或文章片段三、重写段落四、扩展内容五、生成大纲内容六、提高清晰度和精准度七、解决特定的写作挑战八、感受 零、前言 我是虚竹哥,目标是带十万人玩转ChatGPT。 ChatGPT 是一个非常有用的工具,可以帮助你…...
Unity2021.3.13崩溃的一种情况
如果出现如下的报错,可能是软件冲突的原因。自己的原因是使用f.lux这款软件似乎和Unity相互冲突,出现下面报错。 错误信息如上图...
通过ssh连接debian
使用方法 ssh usernameipaddress [inputpasswd]root用户默认无法由ssh连接, 可以通过修改配置 sudo vim /etc/ssh/sshd_config去掉PermitRootLogin前的‘#’,并修改为 PermitRootLogin yes 重启sshd服务 sudo systemctl restart sshd参考 https://linuxconfig.or…...
Transformer 与注意力机制原理说明与面试笔试题
文章大纲 注意力机制不同 种类的注意力机制Encoder Decoder 框架自注意力自注意力机制概述**基本原理****优点与应用****自注意力与多头注意力的关系****总结**多头注意力**多头注意力机制概述****基本原理****计算过程****多头注意力的优势****多头自注意力与多头注意力的区别…...
C语言之装甲车库车辆动态监控辅助记录系统
🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 C语言之装甲车库车辆动态监控辅助记录系统 目录 一、前言 1.1 (一)…...
先进制造aps专题二十七 西门子opcenter aps架构分析
欧美的商业aps,主要就是sap apo,西门子opcenter aps,达索quintiq 从技术的层面,西门子aps是不如sap apo的,但是西门子aps是西门子数字化工厂产品的核心,有很多特色,所以分析 西门子aps主要分计划器和排产器两个部分 计…...
C++/QT环境下图像在窗口下等比例渲染绘制
本文中通过QT获取到opengl上下文环境,通过opengl3.0API将图像等比例渲染到QOpenGLWidget组件上面,相比cpu,渲染能力更强。 有以下四步骤。opengl基本知识点可参照之前文章OPENGL初学习 定义opengl渲染表面属性通过initializeGL接口初始化opengl上下文环境,然后加载并链接着…...
npm ERR! code CERT_HAS_EXPIRED
很不幸看到这个提示。 查了很多网上的解决方案,都提到一个解决方案: npm install -g npmlatest 靠就是执行install报的错,你要我通过install来解决这个问题。可见大多数人都是转发,从不自己试试。 第二个是看系统时间。这个基…...
[系统安全] 六十一.恶意软件分析 (12)LLM赋能Lark工具提取XLM代码的抽象语法树(初探)
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系…...
网络Web存储之LocalStorage
文章目录 LocalStorage介绍定义特点兼容性常用方法存值取值删除指定键值对清空所有键值对通过索引获取键名获取所有值判断是否含有某个键(key)拓展遍历得到key存储和读取复杂类型的数据 应用场景 LocalStorage介绍 定义 LocalStorage 是HTML5提供的一种…...
HTML知识点复习
1.src 和 href 的区别 src:表示对资源的引用, src指向的内容会嵌入到其标签里。 当浏览器解析到该元素时候,会暂停其他资源的下载和处理, 直到将该资源加载、编译、执行完毕,所以js脚本一般会放在页面底部 href&…...
【Leetcode 热题 100】45. 跳跃游戏 II
问题背景 给定一个长度为 n n n 的 0 0 0 索引 整数数组 n u m s nums nums。初始位置为 n u m s [ 0 ] nums[0] nums[0]。 每个元素 n u m s [ i ] nums[i] nums[i] 表示从索引 i i i 向前跳转的最大长度。换句话说,如果你在 n u m s [ i ] nums[i] nums[i…...
《offer 来了:Java 面试核心知识点精讲 -- 原理篇》
在 Java 面试的战场上,只知皮毛可不行,面试官们越来越看重对原理的理解。今天就给大家分享一本能让你在面试中脱颖而出的 “武林秘籍”——《offer 来了:Java 面试核心知识点精讲 -- 原理篇》。 本书详细介绍了Java架构师在BAT和移动互联网公司面试中常被问及的核心知识,内…...
Spring Boot中的自动配置原理是什么
Spring Boot 自动配置原理 Spring Boot 的自动配置机制基于 条件化配置,通过 EnableAutoConfiguration 注解来启用。自动配置的核心原理是 基于类路径和环境条件来推断所需要的配置,Spring Boot 会根据项目中引入的依赖和当前环境来自动装配相关的配置项…...
蓝桥杯3525 公因数匹配 | 枚举+数学
题目传送门 这个题目是一个数学题,由于只需要找到存在大于1的公因数的两数,所以比较方便的做法是统计每一个数的(质)因数。可以通过筛法统计质因数降低复杂度,但是直接枚举因数也可以满足要求。使用字典记录每个因数出…...
elasticsearch基础
分布式搜索引擎01 1. 初始elasticsearch 1.1. 了解ES 1.1.1. elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: 在github搜索代码: 在电…...
【JsonViewer】Json格式化
使用 Notepad 对 Json 数据进行格式化处理,使数据在结构上更清晰 1.在线安装 安装之后,重启应用,在插件菜单栏即可看到 JsonViewer 选项,在 Notepad 中放入 Json 数据,点击 Format Json 进行数据格式化 2.离线安装 …...
线性代数概述
矩阵与线性代数的关系 矩阵是线性代数的研究对象之一: 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,是线性代数中的核心概念之一。矩阵的定义和性质构成了线性代数中矩阵理论的基础,而矩阵运算则简洁地表示和…...
计算机毕业设计Python+卷积神经网络租房推荐系统 租房大屏可视化 租房爬虫 hadoop spark 58同城租房爬虫 房源推荐系统
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
Linux(DISK:raid5、LVM逻辑卷)
赛题拓扑: 题目: DISK 添加4块大小均为10G的虚拟磁盘,配置raid-5磁盘。创建LVM命名为/dev/vg01/lv01,大小为20G,格式化为ext4,挂在到本地目录/webdata,在分区内建立测试空文件disk.txt。[root@storagesrv ~]# yum install mdadm -y [root@storagesrv ~]# mdadm -C -n …...
RIME-CNN-LSTM-Attention多变量多步时序预测Matlab实现
SCI一区级 | Matlab实现RIME-CNN-LSTM-Multihead-Attention多变量多步时序预测 目录 SCI一区级 | Matlab实现RIME-CNN-LSTM-Multihead-Attention多变量多步时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现RIME-CNN-LSTM-Multihead-Attention霜冰算法…...
机器学习中的方差与偏差
文章目录 方差与偏差1.1 数据1.1.1 数据的分布1.1.2 拟合 1.2 方差与偏差1.2.1 泛化误差的拆分1.2.2 理解方差偏差 1.3 方差-偏差trade-off1.3.1 方差-偏差trade-off1.3.2 方差与偏差诊断 1.4 降低策略1.4.1 噪声1.4.2 高偏差1.4.3 高方差 方差与偏差 1.1 数据 1.1.1 数据的分…...
Ubuntu 22.04虚拟机安装配置调整(语言输入法字体共享剪切板等等
2025.01.07安装配置Ubuntu 22.04 记一下 快捷键 截屏 在设置-键盘-快捷键查看 跟搜到的不一样…不过shiftprint感觉也够用 安装 用的是VMware 参考:VMware中安装配置Ubuntu(2024最新版 超详细) 调教(? 语言 改了…...
[创业之路-255]:《华为数字化转型之道》-1-主要章节、核心内容、核心思想
目录 前言:数字化转型对于企业而言,是一种全方位的变革 一、主要章节 1、认知篇(第1~2章)- Why 2、方法篇(第3~5章)- How 3、实践篇(第6~10章)- 实践 4、平台篇(第…...
Java 接口安全指南
Java 接口安全指南 概述 在现代 Web 应用中,接口(API)是前后端交互的核心。然而,接口的安全性常常被忽视,导致数据泄露、未授权访问等安全问题。本文将详细介绍 Java 中如何保障接口安全,涵盖以下内容&am…...
Redis学习笔记1【数据类型和常用命令】
Redis学习笔记 基础语法 1.数据类型 String: 最基本的类型,可以存储任何数据,例如文本或数字。示例值为 hello world。Hash: 用于存储键值对,适合存储对象或结构体。示例值为 {"name": "Jack", "age": 21}。…...
Oracle graph 图数据库体验-安装篇
服务端安装 环境准备 安装数据库 DOCKER 安装23AI FREE ,参考: https://container-registry.oracle.com/ords/f?p113:4:111381387896144:::4:P4_REPOSITORY,AI_REPOSITORY,AI_REPOSITORY_NAME,P4_REPOSITORY_NAME,P4_EULA_ID,P4_BUSINESS_AREA_ID:1…...
Android 13 动态显示隐藏 HomeButton,RecentsButton
com.android.launcher3.taskbar.NavbarButtonsViewController.initButtons mEnabledValue状态<T> StatePropertyHolder(T target, IntPredicate enabledCondition,Property<T, Float> property, float enabledValue, float disabledValue) {mEnableCondition = ena…...
前端开发中的状态管理与网络请求封装
本文将对比 Vuex 和 Pinia 在状态管理中的使用,并介绍如何封装 Axios 进行网络请求。此外,我们还将讨论动态路由、404 页面跳转以及面包屑导航的实现。 话不多说,正文开始~~~ 一、状态管理:Vuex 与 Pinia 对比 1. Vuex Vuex 是…...
AI 大爆发时代,音视频未来路在何方?
AI 大模型突然大火了 回顾2024年,计算机领域最大的变革应该就是大模型进一步火爆了。回顾下大模型的发展历程: 萌芽期:(1950-2005) 1956年:计算机专家约翰麦卡锡首次提出“人工智能”概念,标志…...
30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <5> 5分钟集成好caffeine并使用注解操作缓存
快速导航 <1> 5分钟快速创建一个springboot web项目 <2> 5分钟集成好最新版本的开源swagger ui,并使用ui操作调用接口 <3> 5分钟集成好druid并使用druid自带监控工具监控sql请求 <4> 5分钟集成好mybatisplus并使用mybatisplus generator自…...
STM32 FreeRTOS中断管理
目录 FreeRTOS的中断管理 1、STM32中断优先级管理 2、FreeRTOS任务优先级管理 3、寄存器和内存映射寄存器 4、BASEPRI寄存器 5、FreeRTOS与STM32中断管理结合使用 vPortRaiseBASEPRI vPortSetBASEPRI 6、FromISR后缀 7、在中断服务函数中调用FreeRTOS的API函数需注意 F…...
第10章:Python TDD优化货币类方法与引入工厂方法
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...
嵌入式硬件篇---基本组合逻辑电路
文章目录 前言基本逻辑门电路1.与门(AND Gate)2.或门(OR Gate)3.非门(NOT Gate)4.与非门(NAND Gate)5.或非门(NOR Gate)6.异或门(XOR Gate&#x…...