前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Java进阶-在Ubuntu上部署SpringBoot应用

Java进阶-在Ubuntu上部署SpringBoot应用

原创
作者头像
Damon小智
发布2025-01-18 23:19:37
发布2025-01-18 23:19:37
960
举报
文章被收录于专栏:JavaJava

随着云计算和容器化技术的普及,Linux 服务器已成为部署 Web 应用程序的主流平台之一。Java 作为一种跨平台的编程语言,具有广泛的应用场景。本文将详细介绍如何在 Ubuntu 服务器上部署 Java 应用,包括环境准备、应用发布、配置反向代理(Nginx)、设置系统服务以及日志管理等步骤。


一、部署准备

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

  • 一台运行 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(业内下一个主流版本)。

代码语言:bash
复制
sudo apt install openjdk-17-jdk -y

2. 验证 Java 安装

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

代码语言:bash
复制
java -version

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

代码语言:bash
复制
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服务器

代码语言:bash
复制
sudo apt install mysql-server -y

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

代码语言:bash
复制
sudo systemctl start mysql
sudo systemctl enable mysql

3. 验证MySQL安装

登录MySQL以确认安装成功。

代码语言:bash
复制
sudo mysql -u root -p

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

4. 修改初始密码

代码语言:bash
复制
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

5. 创建库和表

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


四、部署 Java 应用

你可以通过构建一个可执行的 JAR 文件来部署 Java 应用程序。

假设你已经有一个构建好的 JAR 文件,将你的 JAR 文件传输到 Ubuntu 服务器上的目标目录。

在服务器上进入应用目录并运行 JAR 文件。

代码语言:bash
复制
cd /var/www/java-app
java -jar app.jar

如果应用成功启动,你应该能看到类似于下面的日志输出:

代码语言:bash
复制
2025-01-09 10:00:00.000  INFO [main] - Application started on port 8080

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


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

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

1. 安装 Nginx

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

代码语言:bash
复制
sudo apt install nginx -y

2. 配置 Nginx

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

代码语言:bash
复制
sudo nano /etc/nginx/sites-available/default

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

代码语言:bash
复制
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 配置是否正确:

代码语言:bash
复制
sudo nginx -t

如果配置无误,重启 Nginx:

代码语言:bash
复制
sudo systemctl restart nginx

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


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

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

1. 创建 systemd 服务文件

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

代码语言:bash
复制
sudo nano /etc/systemd/system/java-app.service

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

代码语言:ini
复制
[Unit]
Description=Java Web Application
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/www/java-app

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

2. 启动并启用服务

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

代码语言:bash
复制
sudo systemctl daemon-reload

启动 Java 应用服务:

代码语言:bash
复制
sudo systemctl start java-app.service

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

代码语言:bash
复制
sudo systemctl enable java-app.service

3. 检查服务状态

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

代码语言:bash
复制
sudo systemctl status java-app.service

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


七、日志管理

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

1. 配置日志文件

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

application.propertieslogback.xml 配置中指定日志文件的路径。

例如,使用 Logback 配置文件:

代码语言:xml
复制
<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">
        <appender-ref ref="FILE"/>
    </root>
</configuration>

2. 查看应用日志

你可以使用 tailjournalctl 来查看日志文件:

代码语言:bash
复制
sudo tail -f /var/log/java-app.log

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

代码语言:bash
复制
sudo journalctl -u java-app.service -f

八、测试部署

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

九、总结

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、部署准备
  • 二、安装 Java 环境
    • 1. 安装 JDK
    • 2. 验证 Java 安装
  • 三、安装 MySQL(如需)
    • 1. 安装MySQL服务器
    • 2. 启动并设置MySQL开机自启
    • 3. 验证MySQL安装
    • 4. 修改初始密码
    • 5. 创建库和表
  • 四、部署 Java 应用
  • 五、配置 Nginx 作为反向代理(可选)
    • 1. 安装 Nginx
    • 2. 配置 Nginx
    • 3. 测试并重启 Nginx
  • 六、设置 Java 应用为系统服务(可选)
    • 1. 创建 systemd 服务文件
    • 2. 启动并启用服务
    • 3. 检查服务状态
  • 七、日志管理
    • 1. 配置日志文件
    • 2. 查看应用日志
  • 八、测试部署
  • 九、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档