【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服务器》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 提取分割位于多边形区域边缘内部或边缘上的点

[in,on] = inpolygon(xq,yq,xv,yv) xv 和 yv 为定义的多边形区域的,如xv = [1 4 4 1 1 ];yv = [1 1 4 4 1 ];注意最后一个数字与第一个重复,保证多边形闭合; xq 和 yq 为待查询的点in:在多边形内部和边缘的点序号on:仅在多边形边缘的点序号 提取分割方法: matrix=[xq yq…

Ethersacn的交易数据是什么样的(2)

分析 Raw Transanction RLP(Recursive Length Prefix)是一种以太坊中用于序列化数据的编码方式。它被用于将各种数据结构转换为二进制格式,以便在以太坊中传输和存储。RLP 是一种递归的编码方式,允许对复杂的数据结构进行编码。所…

如何应对IT服务交付中的问题?

如何应对IT服务交付中的问题? 按需交付服务的挑战IT服务体系的复杂性恶性循环的形成学会洞察的重要性书籍简介参与方式 按需交付服务的挑战 一致性、可靠性、安全性、隐私性和成本效益的平衡:成功的按需交付服务需要满足这些要求,这需要服务…

【软件测试】Postman中变量的使用

Postman中可设置的变量类型有全局变量,环境变量,集合变量,数据变量及局部变量。区别则是各变量作用域不同,全局变量适用于所有集合,环境变量适用于当前所选环境(所有集合中均可使用不同环境变量&#xff09…

【PCL】(十七)从距离图像中提取点云的边界

(十七)从测距图像中提取边界 Object(Obstacle) border:属于物体和的最外面的可见点; Shadow border:背景中与物体相邻的点; Veil points:Object border和Shadow border之间的插值点。 以下代…

解决win10系统cmd命令无法使用ssh问题

目录 问题说明:在使用ssh命令连接虚拟机地址时,出现了以下报错:​编辑 解决方法如下: 1.打开Windows设置,搜索点击添加可选功能: 2.点击添加功能: 3.安装Open SSH客户端和Open SSH服务器: …

Camunda 主要表及字段注释

表命名规则 ACT_GE_ (GE) 表示 general 全局通用数据及设置,各种情况都使用的数据。共 3 张表ACT_HI_ (HI) 表示 history 历史数据表,包含着程执行的历史相关数据,如结束的流程实例&#xff0c…

ABAP - SALV教程12 显示图标和提示信息

ALV要求字段的值为图标的需求并不多见,一般都用于红黄绿灯,来表示单据的执行状态,添加图标的方式也可以实现红黄绿灯的功能,也可以参考SALV实现红黄绿灯这篇文章:http://t.csdnimg.cn/Dzx7x效果图SAVL列设置为图标图标…

计算机网络-网络安全(二)

1.应用层安全协议: S-HTTP或SHTTP(Sec HTTP),安全超文本传输协议,是HTTP扩展,使用TCP的80端口。HTTPS:HTTPSSL,使用TCP的443端口。和TLS(传输层安全标准)是双…

【论文笔记】Language Models are Unsupervised Multitask Learners

Language Models are Unsupervised Multitask Learners 回顾一下第一代 GPT-1 : 设计思路是 “海量无标记文本进行无监督预训练少量有标签文本有监督微调” 范式;模型架构是基于 Transformer 的叠加解码器(掩码自注意力机制、残差、Layernorm…

森林消防常见难题|便携式森林灭火泵轻松化解|深圳恒峰

在自然生态系统中,森林火灾是一大严重威胁。它不仅破坏了生态平衡,还对人类生活和财产构成极大威胁。尤其是在偏远的森林地区,传统的消防设备往往难以及时到达现场,使得火势得以蔓延。然而,随着恒峰智慧科技的研发&…

01. Nginx入门-Nginx简介

Web基础知识 Web协议通信原理 Web协议通信过程 浏览器本身是一个客户端,当输入URL后,首先浏览器会请求DNS服务器,通过DNS获取相应的域名对应的IP。通过IP地址找到对应的服务器后,监理TCP连接。等浏览器发送完HTTP Request&…