亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

在Ubuntu上部署SpringBoot應(yīng)用的操作步驟

 更新時間:2025年01月10日 10:39:53   作者:Damon小智  
隨著云計算和容器化技術(shù)的普及,Linux 服務(wù)器已成為部署 Web 應(yīng)用程序的主流平臺之一,Java 作為一種跨平臺的編程語言,具有廣泛的應(yīng)用場景,本文將詳細介紹如何在 Ubuntu 服務(wù)器上部署 Java 應(yīng)用,需要的朋友可以參考下

一、部署準(zhǔn)備

在開始之前,請確保你具備以下條件:

  • 一臺運行 Ubuntu(如 Ubuntu 20.04 或 22.04)的服務(wù)器,具有 SSH 訪問權(quán)限。
  • Java 應(yīng)用程序的可執(zhí)行 JAR 文件,確保在本地能夠正常運行。

二、安裝 Java 環(huán)境

首先,你需要在 Ubuntu 上安裝 Java 運行環(huán)境(JRE)或 Java 開發(fā)工具包(JDK),以便能夠運行 Java 應(yīng)用。

1. 安裝 JDK

Ubuntu 提供了 OpenJDK(Java 的開源實現(xiàn))。你可以選擇安裝 JDK 8(業(yè)內(nèi)主流版本)或 OpenJDK 17(業(yè)內(nèi)下一個主流版本)。

sudo apt install openjdk-17-jdk -y

2. 驗證 Java 安裝

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

java -version

你應(yīng)該看到類似于以下的輸出,表示 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服務(wù)器

sudo apt install mysql-server -y

2. 啟動并設(shè)置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. 創(chuàng)建庫和表

這里我們用SQL語句把項目需要的數(shù)據(jù)庫建好即可。

四、部署 Java 應(yīng)用

你可以通過構(gòu)建一個可執(zhí)行的 JAR 文件來部署 Java 應(yīng)用程序。
假設(shè)你已經(jīng)有一個構(gòu)建好的 JAR 文件,將你的 JAR 文件傳輸?shù)?Ubuntu 服務(wù)器上的目標(biāo)目錄。
在服務(wù)器上進入應(yīng)用目錄并運行 JAR 文件。

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

此時你的 Java 應(yīng)用正在 8080 端口上運行。

五、配置 Nginx 作為反向代理(可選)

為了通過瀏覽器訪問你的 Java 應(yīng)用,你需要配置 Nginx 作為反向代理,將客戶端請求轉(zhuǎn)發(fā)到 Java 應(yīng)用。以下是配置反向代理的步驟。

1. 安裝 Nginx

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

sudo apt install nginx -y

2. 配置 Nginx

打開 Nginx 的配置文件進行編輯:

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

修改 server 塊中的配置,將請求轉(zhuǎn)發(fā)到 Java 應(yīng)用的端口(如 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 已經(jīng)成功配置為將所有請求轉(zhuǎn)發(fā)到 Java 應(yīng)用。

六、設(shè)置 Java 應(yīng)用為系統(tǒng)服務(wù)(可選)

為了確保 Java 應(yīng)用在系統(tǒng)啟動時自動啟動,并且可以通過 systemctl 管理,我們需要將應(yīng)用配置為一個 systemd 服務(wù)。

1. 創(chuàng)建 systemd 服務(wù)文件

創(chuàng)建一個新的 systemd 服務(wù)文件來管理 Java 應(yīng)用:

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

將以下內(nèi)容添加到文件中:

[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:指定啟動應(yīng)用的命令。
  • WorkingDirectory:指定應(yīng)用的工作目錄。
  • Restart:確保應(yīng)用崩潰時會自動重啟。

2. 啟動并啟用服務(wù)

重新加載 systemd 配置,使新服務(wù)生效:

sudo systemctl daemon-reload

啟動 Java 應(yīng)用服務(wù):

sudo systemctl start java-app.service

啟用服務(wù),使其在系統(tǒng)啟動時自動啟動:

sudo systemctl enable java-app.service

3. 檢查服務(wù)狀態(tài)

你可以使用以下命令查看服務(wù)的狀態(tài):

sudo systemctl status java-app.service

確保 Java 應(yīng)用正在運行并且沒有錯誤。

七、日志管理

為了有效地監(jiān)控 Java 應(yīng)用的運行狀態(tài),建議設(shè)置日志記錄。

1. 配置日志文件

你可以使用 Java 的日志框架(如 Logback 或 Log4j)來配置應(yīng)用日志。確保日志輸出到文件,而不是僅輸出到控制臺。

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

例如,使用 Logback 配置文件:

<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. 查看應(yīng)用日志

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

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

如果你通過 systemd 啟動應(yīng)用,還可以使用 journalctl 命令來查看應(yīng)用的日志:

sudo journalctl -u java-app.service -f

八、測試部署

  • 在瀏覽器中訪問你的服務(wù)器域名或 IP 地址,確保能正確加載 Java 應(yīng)用。
  • 使用 curl 或 Postman 等工具測試 API 接口,確保后端服務(wù)正常工作。

九、總結(jié)

通過以上步驟,你可以在 Ubuntu 上成功部署 Java 應(yīng)用,使用 Nginx 配置反向代理,確保應(yīng)用能夠高效穩(wěn)定地提供服務(wù)。同時,借助 systemd,你還可以方便地管理應(yīng)用的啟動、停止及日志記錄,確保服務(wù)的高可用性。

以上就是在Ubuntu上部署SpringBoot應(yīng)用的操作步驟的詳細內(nèi)容,更多關(guān)于Ubuntu部署SpringBoot應(yīng)用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java提供的4種函數(shù)式接口

    java提供的4種函數(shù)式接口

    這篇文章主要介紹了java提供的4種函數(shù)式接口,函數(shù)接口是只有一個抽象方法的接口,用作?Lambda?表達式的類型并有且只有一個抽象方法的接口,下文詳細內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • SpringAop的依賴注入方式

    SpringAop的依賴注入方式

    文章介紹了Spring框架的依賴注入(DI)和面向切面編程(AOP)的基本概念和實現(xiàn)方式,Spring通過IOC容器管理Bean的創(chuàng)建和依賴注入,并提供了多種AOP實現(xiàn)方式,包括代理機制和配置選項
    2025-02-02
  • mybatis QueryWrapper的條件構(gòu)造之a(chǎn)pply、last、select解析

    mybatis QueryWrapper的條件構(gòu)造之a(chǎn)pply、last、select解析

    這篇文章主要介紹了mybatis QueryWrapper的條件構(gòu)造之a(chǎn)pply、last、select,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • springboot 項目使用jasypt加密數(shù)據(jù)源的方法

    springboot 項目使用jasypt加密數(shù)據(jù)源的方法

    Jasypt 是一個 Java 庫,它允許開發(fā)者以最小的努力為他/她的項目添加基本的加密功能,而且不需要對密碼學(xué)的工作原理有深刻的了解。接下來通過本文給大家介紹springboot 項目使用jasypt加密數(shù)據(jù)源的問題,一起看看吧
    2021-11-11
  • java 注解實現(xiàn)一個可配置線程池的方法示例

    java 注解實現(xiàn)一個可配置線程池的方法示例

    這篇文章主要介紹了java 注解實現(xiàn)一個可配置線程池的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 詳解java中的Collections類

    詳解java中的Collections類

    這篇文章主要為大家詳細介紹了java中的Collections類,感興趣的小伙伴們可以參考一下
    2016-07-07
  • MyBatis之自查詢使用遞歸實現(xiàn) N級聯(lián)動效果(兩種實現(xiàn)方式)

    MyBatis之自查詢使用遞歸實現(xiàn) N級聯(lián)動效果(兩種實現(xiàn)方式)

    這篇文章主要介紹了MyBatis之自查詢使用遞歸實現(xiàn) N級聯(lián)動效果,本文給大家分享兩種實現(xiàn)方式,需要的的朋友參考下吧
    2017-07-07
  • SpringBoot注冊第三方Bean的方法總結(jié)

    SpringBoot注冊第三方Bean的方法總結(jié)

    眾所周知,SpringBoot默認會掃描啟動類所在的包及其子包,一般我們都是在需要的類上通過注解的方式去將Bean注冊交給IOC進行管理,但是注冊第三方Bean的方案卻不支持,所以本文給大家介紹了SpringBoot注冊第三方Bean的方法,需要的朋友可以參考下
    2024-01-01
  • Java并發(fā)編程之線程安全性

    Java并發(fā)編程之線程安全性

    這篇文章主要介紹了Java并發(fā)編程之線程安全性,文章基于Java的相關(guān)內(nèi)容詳細的展開詳細介紹,需要的小伙伴可以參考一下
    2022-04-04
  • 一文詳解Java中的原子操作

    一文詳解Java中的原子操作

    在Java中,原子操作尤為重要,尤其是在多線程環(huán)境中,想象一下,如果小黑在操作一個共享變量時,這個操作被其他線程打斷,那會發(fā)生什么?可能會導(dǎo)致數(shù)據(jù)不一致,或者更糟糕的情況,本文將給大家詳細介紹一下Java中的原子操作
    2024-01-01

最新評論