服务器测评网
我们一直在努力

如何详细操作将jar包部署到云服务器并运行web应用?

部署独立的JAR包

对于使用Spring Boot等框架构建的现代Java应用,通常会打包成一个可执行的JAR文件,这种应用内嵌了Web服务器(如Tomcat或Jetty),极大地简化了部署流程。把jar包放到云服务器并运行起来,通常包含以下核心步骤。

如何详细操作将jar包部署到云服务器并运行web应用?

准备工作

  • 云服务器:一台已购买并获取公网IP的云服务器实例(如阿里云ECS、腾讯云CVM等)。
  • Java环境:在服务器上安装与开发时版本兼容的JDK,可以通过java -version命令检查是否已安装。
  • JAR包:本地已打包好的应用程序JAR文件。

上传JAR包到服务器

使用安全复制协议(SCP)或文件传输工具(如FileZilla、Xshell的Xftp)将本地的JAR包上传到服务器的指定目录,使用SCP命令:

scp /path/to/your/app.jar user@your_server_ip:/home/user/

这条命令会将本地的app.jar文件上传到服务器的/home/user/目录下。

运行JAR包

通过SSH登录到云服务器后,进入JAR包所在目录,使用java -jar命令启动应用。

java -jar app.jar

为了确保应用在关闭SSH连接后依然能持续运行,推荐使用nohup命令并结合&符号将其置于后台执行:

nohup java -jar app.jar > app.log 2>&1 &

这会将应用的所有输出重定向到app.log文件中,并使其在后台持久运行。

如何详细操作将jar包部署到云服务器并运行web应用?

配置为系统服务(推荐)

为了实现应用的自动化管理(如开机自启、崩溃重启等),最佳实践是将其配置为一个系统服务,在基于Systemd的Linux系统(如Ubuntu 16.04+, CentOS 7+)中,可以创建一个服务文件。

创建服务配置文件:

sudo nano /etc/systemd/system/myapp.service

在文件中填入以下内容,并根据实际情况修改路径和用户:

[Unit]
Description=My Java App Service
After=network.target
[Service]
User=your_user
ExecStart=/usr/bin/java -jar /path/to/your/app.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target

保存后,执行以下命令来启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable myapp.service
sudo systemctl start myapp.service

你可以使用systemctl status myapp.service查看应用状态,systemctl stop myapp.service停止应用,它将在服务器重启后自动启动。

开放防火墙端口

确保云服务器的安全组规则和系统防火墙(如ufwfirewalld)已开放应用所监听的端口(Spring Boot默认的8080端口)。

如何详细操作将jar包部署到云服务器并运行web应用?

# 以Ubuntu的ufw为例
sudo ufw allow 8080

部署Web应用

这里的Web应用主要指传统的、需要部署到外部Servlet容器(如Tomcat)的WAR包,或由静态文件(HTML, CSS, JS)组成的网站。把web放到云服务器的流程与JAR包有所不同。

部署静态网站

对于纯静态网站,通常需要一个Web服务器来托管文件,Nginx是当前最流行的高性能选择。

  • 安装Nginxsudo apt update && sudo apt install nginx (以Ubuntu为例)。
  • 上传文件:将本地网站的所有文件通过SCP或FTP上传到Nginx的默认根目录 /var/www/html/
  • 配置访问:Nginx安装后会自动配置好,直接通过浏览器访问服务器公网IP即可看到网站,你可以通过修改/etc/nginx/sites-available/default文件来定制更复杂的配置。

部署动态Web应用(WAR包)

对于需要编译和运行的Java Web应用(WAR包),需要一个Servlet容器,Apache Tomcat是经典之选。

  • 安装Tomcat:从官网下载Tomcat,解压到服务器目录,并配置好环境变量。
  • 部署WAR包:将打包好的app.war文件复制到Tomcat的webapps目录下。
  • 自动部署:Tomcat会自动检测到webapps目录下的新WAR包,并将其解压部署,部署成功后,通常可以通过 http://your_server_ip:8080/app/ 来访问应用(端口和路径取决于Tomcat配置)。

部署方式对比

为了更清晰地理解不同部署方式的差异,下表进行了总结对比。

部署对象 常用工具/技术 核心优势 适用场景
独立JAR包 JDK, Systemd, SCP 部署简单、内嵌容器、易于容器化(Docker) 微服务、RESTful API、Spring Boot应用
静态Web文件 Nginx, Apache, SCP 性能极高、配置简单、资源消耗低 企业官网、博客、前端项目(Vue/React构建产物)
动态Web应用(WAR) Tomcat, JBoss, SCP 技术成熟、生态完善、支持传统Java EE规范 传统的企业级Java Web应用、SSH/SSM框架项目

无论是把jar包放到云服务器,还是把web放到云服务器,其本质都是将开发成果发布到互联网上,选择哪种部署方式,主要取决于应用的架构和技术栈,对于新项目,尤其是基于Spring Boot的微服务,打包成独立JAR进行部署是更现代、更高效的选择,而对于维护旧项目或特定需求,使用Tomcat等容器部署WAR包依然是可靠且成熟的方案,理解这些基本流程和最佳实践,是每一位后端工程师和运维人员的必备技能,它标志着你的应用真正拥有了服务全球用户的能力。

赞(0)
未经允许不得转载:好主机测评网 » 如何详细操作将jar包部署到云服务器并运行web应用?