目录
- 前情提要
- 安装并配置nginx
- 配置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更正,并自动更新