在Ubuntu上部署SpringBoot应用的操作步骤

2025-01-11 04:50

本文主要是介绍在Ubuntu上部署SpringBoot应用的操作步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本...

一、部署准备

在开始之前,请确保你具备以下条件:

  • 一台运行 Ubuntu(如 Ubuntu 20.04 或 22.04)的服务器,具有 SSH 访问权限。
  • Java 应用程序的可执行 JAR 文件,确保在本地能够正常运行。

二、安装 Java 环境

首先,你需要在 Ubuntu 上安装 Java 运行环境(JRE)或 Java 开发工具包(JDK),以便能够运行 Java 应用。

1. 安装 JDK

Ubuntu 提供了 OpenJDK(Java 的开源实现)。你可以选择安装 JDK 8(业内主流版本)或 OpenJDK 17(业内下一个主流版本)。

sudo apt install openjdk-17-jdk -y

2. 验证 Java 安装

安装完成后,你可以使用以下命令检查 Java 是否安装成功:

java -version

你应该看到类似于以下的输出,表示 Java 安装成功:

openjdk version "17.0.2" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-60)
OpenJDK 64-Bit Server VM (build 11.0.11+9-60, mixed mode)

三、安装 MySQL(如需)

1. 安装MySQL服务器

sudo apt install mysql-server -y

2. 启动并设置MySQL开机自启

sudo systemctl start mysql
sudo systemctl enable mysql

3. 验证MySQL安装

登录MySQL以确认安装成功。

sudo mysql -u root -p

MySQL默认密码是root,直接登录即可。

4. 修改初始密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

5. 创建库和表

这里我们用SQL语句把项目需要的数据库建好即可。

四、部署 Java 应用

你可以通过构建一个可执行的 JAR 文件来部署 Java 应用程序。
假设你已经有一个构建好的 JAR 文件,将你的 JAR 文件传输到 Ubuntu 服务器上的目标目录。
在服务器上进入应用目录并运行 JAR 文件。

cd /var/www/java-app
java -jar app.jar

此时你的 Java 应用正在 8080 端口上运行。

五、配置 Nginx 作为反向代理(可选)

为了通过浏览器访问你的 Java 应用,你需要配置 Nginx 作为反向代理,将客户端请求转发到 Java 应用。以下是配置反向代理的步骤。

1. 安装 Nginx

如果 Nginx 尚未安装,可以使用以下命令进行安装:

sudo apt install nginx -y

2. 配置 Nginx

打开 Nginx 的配置文件进行编辑:

sudo nano /etc/nginx/sites-available/default

修改 server 块中的配置,将请求转发到 Java 应用的端口(如 8080):

server {
    listen 80;

    server_name your-domain.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

保存并退出配置文件。

3. 测试并重启 Nginx

测试 Nginx 配置是否正确:

sudo nginx -t

如果配置无误,重启 Nginx:

sudo systemctl restart nginx

此时,Nginx 已经成功配置为将所有请求转发到 Java 应用。

六、设置 Java 应用为系统服务(可选)

为了确保 Java 应用在系统启动时自动启动,并且可以通过 systemctl 管理,我们需要将应用配置为一个 systemd 服务。

1. 创建 systemd 服务文件

创建一个新的 systemd 服务文件来管理 Java 应用:

sudo nano /etc/systemd/system/java-app.service

将以下内容添加到文件中:

[Unit]
Description=Java Web AppliChina编程cation
After=network.target

[Service]
User=your-user
ExecStart=/usr/bin/java -jar /var/www/java-app/app.jar
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
WorkingDirectory=/var/wwwwww.chinasem.cn/java-app

[Install]
WantedBy=multi-user.target
  • ExecStart:指定启动应用的命令。
  • WorkingDirectory:指定应用的工作目录。
  • Restart:确保应用崩溃时会自动重启。

2. 启动并启用服务

重新加载 systemd 配置,使新服务生效:

sudo systemctl daemon-reload

启动 Java 应用服务:

sudo systemctl start java-app.service

启用服务,使其在系统启动时自动启动:

sudo systemctl enable java-app.service

3. 检查服务状态

你可以使用以下命令查看China编程服务的状态:

sudo systemctl status java-app.service

确保 Java 应用正在运行并且没有错误。

七、日志管理

为了有效地监控 Java 应用的运行状态,建议设置日志记录。

1. 配置日志文件

你可以使用 Java 的日志框架(如 Logback 或 Log4j)来配置应用日志。确保日志输出到文件,而不是仅输出到控制台。

在 application.properties 或 logback.XML 配置中指定日志文件的路径。

例如,使用 Logback javascript配置文件:

<configuration>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>/var/log/java-app.log</file>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <append编程China编程er-ref ref="FILE"/>
    </root>
</configuration>

2. 查看应用日志

你可以使用 tail 或 journalctl 来查看日志文件:

sudo tail -f /var/log/java-app.log

如果你通过 systemd 启动应用,还可以使用 journalctl 命令来查看应用的日志:

sudo journalctl -u java-app.service -f

八、测试部署

  • 在浏览器中访问你的服务器域名或 IP 地址,确保能正确加载 Java 应用。
  • 使用 curl 或 Postman 等工具测试 API 接口,确保后端服务正常工作。

九、总结

通过以上步骤,你可以在 Ubuntu 上成功部署 Java 应用,使用 Nginx 配置反向代理,确保应用能够高效稳定地提供服务。同时,借助 systemd,你还可以方便地管理应用的启动、停止及日志记录,确保服务的高可用性。

以上就是在Ubuntu上部署SpringBoot应用的操作步骤的详细内容,更多关于Ubuntu部署SpringBoot应用的资料请关注China编程(www.chinasem.cn)其它相关文章!

这篇关于在Ubuntu上部署SpringBoot应用的操作步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1153034

相关文章

Java如何根据word模板导出数据

《Java如何根据word模板导出数据》这篇文章主要为大家详细介绍了Java如何实现根据word模板导出数据,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... pom.XML文件导入依赖 <dependency> <groupId>cn.afterturn</groupId>

Java应用如何防止恶意文件上传

《Java应用如何防止恶意文件上传》恶意文件上传可能导致服务器被入侵,数据泄露甚至服务瘫痪,因此我们必须采取全面且有效的防范措施来保护Java应用的安全,下面我们就来看看具体的实现方法吧... 目录恶意文件上传的潜在风险常见的恶意文件上传手段防范恶意文件上传的关键策略严格验证文件类型检查文件内容控制文件存储

浅析Java如何保护敏感数据

《浅析Java如何保护敏感数据》在当今数字化时代,数据安全成为了软件开发中至关重要的课题,本文将深入探讨Java安全领域,聚焦于敏感数据保护的策略与实践,感兴趣的小伙伴可以了解下... 目录一、Java 安全的重要性二、敏感数据加密技术(一)对称加密(二)非对称加密三、敏感数据的访问控制(一)基于角色的访问

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,

使用Java将实体类转换为JSON并输出到控制台的完整过程

《使用Java将实体类转换为JSON并输出到控制台的完整过程》在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用JSON格式,用Java将实体类转换为J... 在软件开发的过程中,Java是一种广泛使用的编程语言,而在众多应用中,数据的传输和存储经常需要使用j

Java实现视频格式转换的完整指南

《Java实现视频格式转换的完整指南》在Java中实现视频格式的转换,通常需要借助第三方工具或库,因为视频的编解码操作复杂且性能需求较高,以下是实现视频格式转换的常用方法和步骤,需要的朋友可以参考下... 目录核心思路方法一:通过调用 FFmpeg 命令步骤示例代码说明优点方法二:使用 Jaffree(FF

Java实现图片淡入淡出效果

《Java实现图片淡入淡出效果》在现代图形用户界面和游戏开发中,**图片淡入淡出(FadeIn/Out)**是一种常见且实用的视觉过渡效果,它可以用于启动画面、场景切换、轮播图、提示框弹出等场景,通过... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细

Java如何用乘号来重复字符串的功能

《Java如何用乘号来重复字符串的功能》:本文主要介绍Java使用乘号来重复字符串的功能,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java乘号来重复字符串的功能1、利用循环2、使用StringBuilder3、采用 Java 11 引入的String.rep

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl