【JavaEE进阶】部署Web项目到Linux服务器

文章目录

  • 🍃前言
  • 🍀什么是部署
  • 🌲环境配置
    • 🚩数据准备
    • 🚩程序配置⽂件修改
  • 🎄构建项目并打包
  • 🎋上传Jar包到服务器,并运行
    • 🚩上传Jar包
    • 🚩运行程序
    • 🚩开放端口号
  • 🌳常见问题
  • 🌴杀掉进程
  • ⭕总结

🍃前言

本篇博文主要内容为如何将本机的Web项目部署到Linux服务器上

🍀什么是部署

我们在⼯作中会涉及到几个"环境"

  • 开发环境: 开发⼈员写代码用的机器.
  • 测试环境: 测试⼈员测试程序使用的机器.
  • ⽣产环境(线上环境): 最终项⽬发布时所使⽤的机器.对稳定性要求很⾼.

把程序安装到⽣产环境上,这个过程称为"部署".也叫"上线"

⼀旦程序部署成功,那么这个程序就能被外网中千千万万的普通用户访问到.

换句话说,如果程序有BUG,这个BUG也就被千千万万的⽤⼾看到了.

部署过程⾄关重要,属于程序开发中最重要的⼀环.⼀旦部署出现问题,极有可能导致严重的事故(服务器不可⽤之类的).

为了防⽌部署出错,⼀般公司内部都有⼀些⾃动化部署工具(如Jenkins等).

这里博主使⽤⼿⼯部署的⽅式来完成部署

🌲环境配置

要使程序正常运行,需要保证环境和程序都要正确,我们需要先设置环境

🚩数据准备

准备需要部署到服务器上的web项目所需要的数据库

首先建立我们所需要的数据库

接下这里我们有两种方法来填充里面的数据

  1. 建⽴相同的表结构,导入相同的数据
  2. 对原来数据库的数据进行打包,放入Linux某一个目录下面,然后打开相应的数据库,实用如下命令进行导入
source 打包的数据库在Linux里的文件路径

🚩程序配置⽂件修改

实际⼯作中,开发环境,测试环境以及⽣产环境的配置都是不⼀样的

⽐如mysql的⽤⼾名和密码

我们可以针对不同的环境,设置不同的配置

🎄构建项目并打包

在本地使用maven进行打包

  1. 如果Test代码中有与环境配置相关的操作(⽐如数据库相关的操作),打包会失败,点击下图①处的图标,可以跳过测试

在这里插入图片描述

  1. 点击clean->package
    在这里插入图片描述

🎋上传Jar包到服务器,并运行

🚩上传Jar包

直接拖动打好的jar包到xshell窗⼝即可完成⽂件的上传

Xshell可以直接拖动⽂件到窗⼝,达到上传⽂件的⽬的,如果使⽤其他客⼾端,不⽀持⽂件的上传,需要借助lrzsz命令

  1. 上传⽂件
    sz filename
  2. 下载⽂件
    rz

执行该命令后,在弹出框中选择要上传的文件即可,上传的速度取决于网络.

如果执⾏上述命令之后,提⽰ Command ‘XX’ not found ,表⽰当前云服务器未安装lrzsz命令,需要先进⾏安装

安装lrzsz命令如下:

apt-get install lrzsz

🚩运行程序

运行程序分为两种,一种使永久的,一种是短暂的

我们现在来看一下短暂的语法如下

java -jar 所导入jar包名字

这个命令的运行方式会在你退出终端时就停止

接下来我们看一个永久的运行方式

nohup java -jar 所导入jar包名字 &

我们还可以通过该命令搭配 > 把需要输出的内容写到指定⽂件中.这样的操作称为"重定向".

举例如下:

nohup java -jar blog-0.0.1-SNAPSHOT.jar >/logs &

成功启动后与你在本机启动web项目的场景是一样的

🚩开放端口号

如果外网需要访问该服务,需要先服务器防火墙开放对应的端⼝号

本着服务器安全的原则,云服务器上的端口非必要不开启.

⽐如常见端⼝号:数据库3306,Redis6379,尽可能避免开放,而是采⽤其他⽅式来连接,⽐如配置隧道的⽅式

接下来博主以腾讯云服务器举例:

  1. 进⼊防火墙管理页面
    在这里插入图片描述
    在这里插入图片描述
  2. 添加规则
    在这里插入图片描述

端⼝号写需要开放的端⼝号,多个端⼝号以逗号分割.

🌳常见问题

⼀个程序的正常运行,需要程序的正确和环境的正确.同样的代码在Windows上可以运行成功,不⼀定在Linux上运⾏成功.

不同的系统对代码的理解和止持是不同的.⽐如Windows系统对MySQL不区分大小写,Linux区分大小写

服务不能正常访问的原因有很多,主要分以下⼏⽅⾯

服务未启动

  • 使⽤ ps -ef|grep java 查看程序是否在运⾏
  • 使⽤ 相应的访问界面 看下是否有返回html⻚⾯,

如果有返回,说明程序启动成功了,考虑端⼝未开放

如果未启动成功,需要查看对应的⽇志,根据原因来分析.

  1. 数据库不存在
  2. 表不存在(区分大小写)
  3. 数据库密码不正确
  4. Jdk安装版本不对,或者未安装
  5. mysql未设置密码

🌴杀掉进程

如果我们需要重启服务,或者重新部署等,都需要先停⽌之前的服务.

  1. 查看当前服务的进程
 ps -ef|grep java

在这里插入图片描述
上图35443就是该服务的进程

  1. 杀掉进程
 kill -9 PID

⭕总结

关于《【JavaEE进阶】部署Web项目到Linux服务器》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下

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

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

相关文章

HotFix原理学习 IL2CPP 学习

原文链接:Unity 游戏用XLua的HotFix实现热更原理揭秘-CSDN博客 本文通过对XLua的HoxFix使用原理的研究揭示出来这样的一套方法。这个方法的 第一步:通过对C#的类与函数设置Hotfix标签。来标识需要支持热更的类和函数。第二步:生成函数连接器…

2024年【焊工(初级)】考试题及焊工(初级)考试资料

题库来源:安全生产模拟考试一点通公众号小程序 焊工(初级)考试题是安全生产模拟考试一点通生成的,焊工(初级)证模拟考试题库是根据焊工(初级)最新版教材汇编出焊工(初级…

XM外汇平台自行扣除客户账户资金,理由荒谬且无据!

小编在FX110网多年,也算是“见多识广”了,可虽说是见惯了平台的“骚操作”,但对于XM平台这一次的行径,还是挺震惊的,只能说平台方多少有点无赖了! 事故源于一位XM用户的一次出金,发现莫名其妙被…

LeetCode每日一题之 复写0

目录 题目介绍: 算法原理: 特殊位置处理: 代码实现: 题目介绍: 题目链接:. - 力扣(LeetCode) 算法原理: 这种对数组元素进行修改,移动的题目我们仍然可以…

LeetCode-02

225. 用队列实现栈 用两个队列实现栈的功能,思路如下: 往空队列中放新元素把非空队列中的元素依次放入刚才添加了新元素的队列,直到非空队列变为空队列 class MyStack(object):def __init__(self):self.queue1 []self.queue2 []def push(…

台式电脑电源各线的电压和电流输出和输出电流

台式电脑电源是电脑硬件的重要组成部分。 它为计算机的各个部件提供所需的电压和电流。 不同的硬件设备和组件有不同的电压和电流输出。 下面详细介绍台式电脑电源各线的电压,包括3.3V、5V、12V、-12V、-5V和5VSB,以及它们的输出电流和用途。 3.3V&#…

命名实体识别NER(综合代码示例)

一、命名实体识别发展方向 二、中文数据集 CCKS2017开放的中文的电子病例测评相关的数据。 评测任务一:https://biendata.com/competition/CCKS2017_1/ 评测任务二:https://biendata.com/competition/CCKS2017_2/ CCKS2018开放的音乐领域的实体识别任务…

大唐杯学习笔记:Day4

1.1NR帧结构 5G NR中,依然采用一帧10ms,并将一帧分为10子帧,每个子帧为1ms。每个子帧包含几个时隙(slot),每个时隙由14个OFDM符号构成(在常规CP下)。 μ \mu μ Δ f 2 μ ∗ 15 [ K H Z ] \Delta f2^{\mu}*15[KHZ] Δf2μ∗15[KHZ]Cyclic prefix015Normal130Normal260Normal…

【鸿蒙 HarmonyOS 4.0】应用状态:LocalStorage/AppStorage/PersistentStorage

一、介绍 如果要实现应用级的,或者多个页面的状态数据共享,就需要用到应用级别的状态管理的概念。 LocalStorage:页面级UI状态存储,通常用于UIAbility内、页面间的状态共享。AppStorage:特殊的单例LocalStorage对象&…

jxls——自定义命令设置动态行高

文章目录 前言依赖引入绘制 jxls 批注的 excel 模板测试类编写自定义命令关于自动换行 前言 之前的博客中都简单说了数据的渲染和导出excel文件。包括固定的 表头结构,以及动态 表头和表数据等方式。 本篇博客主要说明自定义命令的方式,控制输出excel文…

bert 相似度任务训练简单版本,faiss 寻找相似 topk

目录 任务 代码 train.py predit.py faiss 最相似的 topk 数 任务 使用 bert-base-chinese 训练相似度任务,参考:微调BERT模型实现相似性判断 - 知乎 参考他上面代码,他使用的是 BertForNextSentencePrediction 模型,Bert…

固定资产管理系统包括哪些

固定资产管理是企业经营过程中一项非常重要的任务。它涉及到公司的核心资产,包括土地、建筑物、设备、车辆等。为了有效地管理这些资产,许多企业选择使用固定资产管理系统。那么,固定资产管理系统的内容是什么呢?本文将为您进行全…

O2OA(翱途)通过服务来调用接口实现单点登录案例

本文介绍O2OA服务管理中,接口的权限设定和调用方式。 创建接口 具有服务管理设计权限的用户(具有ServiceManager角色或Manager角色)打开“服务管理平台”,进入接口配置视图,点击左上角的新建按钮,可创建一…

webpack基础配置及使用

webpack是什么 是一个现代 JavaScript 应用程序的静态模块打包器。当webpack 处理应用程序时,它会递归地构建一个依赖关系图 ,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle 。主要有 五个核心概念&#xff1a…

11. Nginx进阶-HTTPS

简介 基本概述 SSL SSL是安全套接层。 主要用于认证用户和服务器,确保数据发送到正确的客户机和服务器上。 SSL可以加密数据,防止数据中途被窃取。 SSL也可以维护数据的完整性,确保数据在传输过程中不被改变。 HTTPS HTTPS就是基于SSL来…

vue中使用echarts实现人体动态图

最近一直处于开发大屏的项目,在开发中遇到了一个小知识点,在大屏中如何实现人体动态图。然后看了下echarts官方文档,根据文档中的示例调整出来自己想要的效果。 根据文档上发现 series 中 type 类型设置为 象形柱形图,象形柱图是…

Gitlab 安装部署

目录 1、Jenkins 结合 Gitlab 构建 CI/CD 环境 CI/CD 介绍 CI/CD 流程 Jenkins 简介 GitLab 简介 项目部署方式 CI系统的工作流程 2、搭建 GitLab 安装 GitLab 配置 GitLab 修改root密码 访问 GitLab 开机自启 3、使用 GitLab 管理 GitLab 关闭 GitLab 注册功能…

Conda笔记--移动Conda环境后pip使用异常的解决

1--概述 由于各种原因,需要将Anaconda转变为Minicoda,为了保留之前安装的所有环境,直接将anaconda3/envs的所有环境拷贝到Miniconda/envs中,但在使用移动后环境时会出现pip的错误:bad interpreter: No such file or di…

AWS的RDS数据库开启慢查询日志

#开启慢日志两个参数 slow_query_log 1 设置为1,来启用慢查询日志 long_query_time 5 (单位秒) sql执行多长时间被定义为慢日志1. 点击RDS然后点击参数组,选择slow_query_log,设置为1【表示开启慢日志】点击保存…

力扣hot9---滑动窗口

题目: 先记录一下(没想到有生之年,还能):其实还能优化,后面会讲述优化思路 思路: 滑动窗口的大小就是固定的,就是len_p。那么依次将窗口从s的最左端向右滑动。在当下的窗口中&#x…