博客详情页背景图

jar部署服务器并配置https

将Java项目打包生成的jar部署到服务器,并配置https访问,添加进程守护

2025-12-28 · 前端
目录
  1. 前情提要
  2. 安装并配置nginx
  3. 配置Java代码
前情提要
1.将Java项目打包生成jar  这里演示的端口为8081内部端口
2.在服务器配置添加域名解析
3.对域名生成nginx的SSL私钥以及SSL证书
4.将jar、密钥和证书等文件放到/yuweb文件夹下
安装并配置nginx
安装nginx
sudo yum update && sudo yum install nginx -y
配置 Nginx HTTPS 反向代理  服务名称:
vim /etc/nginx/conf.d/xxx.conf
按键i添加下面内容

-----

server {
    listen 443 ssl;
		
    #域名地址
    server_name xxx.cn www.xxx.cn;

    #域名私钥和证书
    ssl_certificate /yuweb/www.xxx.cn.pem;
    ssl_certificate_key /yuweb/www.xxx.cn.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        #端口地址
        proxy_pass http://127.0.0.1:8081;
        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;
    }
}

# HTTP 跳转 HTTPS
server {
    listen 80;
    server_name xx.cn www.xxx.cn;
    return 301 https://$host$request_uri;
}

-----

启动nginx,并刷新配置
systemctl start nginx
systemctl reload nginx
配置Java代码
安装Java
yum install java-17-openjdk-devel
创建java守护服务文件
vim /etc/systemd/system/xxx.service
按键i,输入以下内容

-----

[Unit]
Description=xxx Java Service
After=network.target

[Service]
User=root
WorkingDirectory=/yuweb
# Java地址  可以通过which Java查看
ExecStart=/usr/bin/java -jar /yuweb/xxx.jar
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=multi-user.target

-----

启动服务:
sudo systemctl daemon-reload
sudo systemctl enable yushared
sudo systemctl start yushared

测试域名是否可以访问
如果不能访问查看nginx日志
sudo tail -f /var/log/nginx/error.log

为了方便后续更新 可以在当前/yuweb文件夹下添加脚本
vim update_jar.sh
按键i,输入下面内容

-----

#!/bin/bash

# 定义目录和文件路径
WORK_DIR="/yuweb"
SNAPSHOT_JAR="$WORK_DIR/xxx-0.0.1-SNAPSHOT.jar"
TARGET_JAR="$WORK_DIR/xxx.jar"
SERVICE_NAME="xxx"

# 检查快照jar是否存在
if [ ! -f "$SNAPSHOT_JAR" ]; then
    echo "错误:未找到 $SNAPSHOT_JAR"
    exit 1
fi

# 停止服务
echo "正在停止服务..."
sudo systemctl stop $SERVICE_NAME

# 删除旧jar(如果存在)
if [ -f "$TARGET_JAR" ]; then
    echo "删除旧jar文件..."
    rm -f "$TARGET_JAR"
fi

# 重命名新jar
echo "重命名新jar文件..."
mv "$SNAPSHOT_JAR" "$TARGET_JAR"

# 启动服务
echo "重启服务..."
sudo systemctl start $SERVICE_NAME

echo "更新完成!新的jar文件已生效。"

-----

每次更新通过./update_jar.sh更正,并自动更新