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

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

🍃前言

本篇博文主要内容为如何将本机的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,尽可能避免开放,而是采⽤其他⽅式来连接,⽐如配置隧道的⽅式

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

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

相关文章
|
9月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
10月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
939 13
|
10月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
3264 0
|
10月前
|
存储 安全 Linux
Linux服务器上安装配置GitLab的步骤。
按照以上步骤,一个基础的GitLab服务应该运行并可以使用。记得定期检查GitLab官方文档,因为GitLab的安装和配置步骤可能随着新版本而变化。
930 0
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
853 28
|
存储 运维 监控
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
651 1
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
弹性计算 Linux 数据库
阿里云国际版如何迁移Linux云服务器系统盘中的数据
阿里云国际版如何迁移Linux云服务器系统盘中的数据
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS