当前位置: 首页 > article >正文

打包好的jar包,如何部署在服务器?——详细教程

文章目录

      • 1. 准备工作
        • 安装 JDK
      • 2. 将 JAR 包上传到服务器
        • 使用 SCP 将 JAR 包上传到服务器
      • 3. 配置并运行 JAR 包
        • 运行 JAR 包
        • 查看服务状态
      • 4. 配置防火墙
      • 5. 配置反向代理(可选)
        • 安装 Nginx
        • 配置 Nginx 反向代理
      • 6. 设置服务开机启动
        • 使用 `systemd` 创建服务
        • 检查服务状态
      • 总结流程

要将 user-service 部署到服务器上并且使其他服务可以调用,通常需要以下几个步骤。使用的是一台 Linux 服务器,并且项目是 Spring Boot 应用程序。以下是详细的部署步骤:

1. 准备工作

安装 JDK

确保服务器上安装了 Java 运行环境(JDK)。可以通过以下命令检查:

java -version

如果未安装 Java,可以执行以下命令来安装:

Ubuntu/Debian 系统:

sudo apt update
sudo apt install openjdk-17-jdk

CentOS 系统:

sudo yum update
sudo yum install java-17-openjdk-devel

安装完成后,检查 Java 安装是否成功:

java -version

2. 将 JAR 包上传到服务器

使用 SCP 将 JAR 包上传到服务器

你可以通过 scp 命令将 JAR 包上传到服务器。

在本地终端中执行以下命令将 JAR 包上传:

scp /path/to/your/user-service.jar username@your-server-ip:/path/on/server/

/path/to/your/user-service.jar 是你本地 JAR 包的路径,/path/on/server/ 是服务器上存放 JAR 包的路径。

3. 配置并运行 JAR 包

运行 JAR 包

登录到服务器后,进入 JAR 包所在的目录,并使用 java -jar 命令运行 JAR 包。

cd /path/on/server/
java -jar user-service.jar

这将在前台启动服务。如果你想让服务在后台运行,并且在关闭终端后继续运行,可以使用 nohup 命令:

nohup java -jar user-service.jar > user-service.log 2>&1 &

这会将日志输出到 user-service.log 文件中,并在后台运行服务。

查看服务状态

你可以通过以下命令查看服务是否成功启动:

tail -f user-service.log

如果服务启动成功,会看到 Spring Boot 启动的相关日志信息。

4. 配置防火墙

如果服务器启用了防火墙,确保开放应用运行的端口。假设 user-service 运行在默认的 8080 端口,你可以使用以下命令开放该端口。

Ubuntu/Debian 系统(使用 ufw):

sudo ufw allow 8080/tcp
sudo ufw reload

CentOS 系统(使用 firewalld):

sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

5. 配置反向代理(可选)

如果你想通过域名或子域名访问 user-service,可以配置 Nginx 作为反向代理。Nginx 将会转发外部请求到你的 user-service

安装 Nginx

如果服务器上没有安装 Nginx,可以通过以下命令安装:

Ubuntu/Debian 系统:

sudo apt install nginx

CentOS 系统:

sudo yum install nginx
配置 Nginx 反向代理

编辑 Nginx 配置文件,创建一个反向代理配置:

sudo nano /etc/nginx/sites-available/user-service

添加以下内容(假设你希望通过 http://your-domain.com 访问服务):

server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://localhost: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;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用该配置:

sudo ln -s /etc/nginx/sites-available/user-service /etc/nginx/sites-enabled/

测试配置是否正确:

sudo nginx -t

如果没有错误,重新加载 Nginx:

sudo systemctl reload nginx

现在你可以通过 http://your-domain.com 访问你的 user-service

6. 设置服务开机启动

使用 systemd 创建服务

为了确保服务器重启后,user-service 自动启动,可以创建一个 systemd 服务。

  1. 创建 user-service 的服务文件:
sudo nano /etc/systemd/system/user-service.service
  1. 在文件中添加以下内容:
[Unit]
Description=User Service
After=network.target

[Service]
User=your-username
ExecStart=/usr/bin/java -jar /path/on/server/user-service.jar
SuccessExitStatus=143
StandardOutput=journal
StandardError=inherit
Restart=always

[Install]
WantedBy=multi-user.target

确保路径和用户名正确替换为你服务器上的实际路径和用户。

  1. 保存后,执行以下命令使服务生效:
sudo systemctl daemon-reload
sudo systemctl start user-service
sudo systemctl enable user-service
检查服务状态

你可以通过以下命令检查 user-service 是否运行:

sudo systemctl status user-service

至此,user-service 已成功在服务器上运行,并且设置为开机启动。其他服务可以通过 REST API 或直接引用该服务的 JAR 包来调用它。

总结流程

  1. 在服务器上安装 JDK。
  2. 将 JAR 包上传到服务器。
  3. 使用 java -jar 或者通过 systemd 启动服务。
  4. 配置防火墙开放端口。
  5. (可选)使用 Nginx 配置反向代理。
  6. 设置服务开机自动启动。

这样就可以在服务器上成功部署 user-service 并提供对外服务。


http://www.kler.cn/news/305122.html

相关文章:

  • 死锁例子学习
  • 汽车车门的美观与功能:矫平工艺的精细修复
  • VUE + NODE 历史版本安装
  • Python办公自动化案例(二):对比两个Excel数据内容并标出不同
  • 大模型探索式轨迹优化:基于试错的自主智能体学习新方法
  • iPhone 16和iPhone 16 Pro将发布时缺少这一关键功能
  • LabVIEW编程快速提升的技术
  • linux 图形如何设置x11 为主要图形
  • fuaeehfnklae
  • 一模--解题--71-80
  • Centos 7.9 使用 crontab 实现开机启动
  • 【C++】string类中常用函数的模拟实现
  • 【信奥赛模拟题中的选择题】
  • 合资油车断崖式崩盘,买车的千万慎重了
  • SAP自动化-AS02修改资产信息
  • NASA数据集:ASTER L2 地表辐射率 VNIR 和 SWIR V003
  • 上门按摩小程序APP系统源码开发搭建
  • yolov5明厨亮灶检测系统,厨师帽-口罩检测,带pyqt界面-可检测图片和视频,支持中文标签,检测接口已封装好并优化,代码可读性强!
  • ​招​银​网​络​​大​疆​​元​象​一​面​
  • 河海大学《2020年+2021年827自动控制原理真题》 (完整版)
  • Netty权威指南:Netty总结-Netty线程模型与架构剖析
  • 如何正确使用MMPI量表进行测试?
  • 关于 -fsanitize=address 的使用注意事项
  • 链路聚合(Link Aggregation)
  • 分享一个爬虫数据挖掘 农村产权交易数据可视化平台 数据分析大数据 Java、python双版(源码、调试、LW、开题、PPT)
  • Linux内核编译并移植至ARM平台
  • 【数据结构和算法实践-树-LeetCode113-路径总和Ⅱ】
  • 【数据结构】6——图1,概念
  • 【nginx】ngx_http_proxy_connect_module 正向代理
  • 『功能项目』C#拓展 - 优化冗余脚本【36】