如何在win服务器中部署若依项目

发布于:2025-08-17 ⋅ 阅读:(19) ⋅ 点赞:(0)

一、安装jdk的环境:

这一步很简单,直接拿到安装包双击安装即可。

二、配置jdk的环境变量

  1. 默认安装的路径为:C:\Program Files (x86)\Java\jdk1.7.0_51
  2. 安装完成之后进行环境变量配置
  3. 右击计算机(此电脑)
  4. 点击属性
  5. 点击高级系统设置
  6. 点击环境变量
  7. 鼠标随便点击下面的系统变量
  8. 新建,变量名为:JAVA_HOME ,变量值为:C:\Program Files (x86)\Java\jdk1.7.0_51(安装路径)
  9. 到系统环境变量的path,点击编辑,然后点击编辑文本
  10. 在变量值里面的最前面或者最后面追加:[ ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; ]括号里面的内容都追加,然后点击确定
  11. 继续点击新建,变量名为:CLASSPATH,变量值为:[ .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar ]中括号里面的内容,包括小数点和分号,点击确定即可。
  12. 测试环境变量是否配置好,win+r,输入cmd,然后回车。
  13. 直接输入java,然后回车看看是不是有一大推汉字
  14. 直接输入javac,然后回车看看是不是有一大堆汉字

三、安装caddy,主要用来替代nginx的反向代理

需要先去下载caddy,下载地址: https://caddyserver.com/download?spm=5176.29317386.0.0.178d1db8z0ticM 。
将下载的 caddy.exe 文件复制到一个目录,例如: C:\caddy 。
可选:将 C:\caddy 添加到系统环境变量 PATH ,以便在任意位置运行 caddy 命令。
✅ 配置 Caddyfile
15. 创建 Caddyfile
在 C:\caddy 目录下创建一个名为 Caddyfile 的文本文件,内容如下:

yourdomain.com {
    # 反向代理后端 API
    route /api/* {
        reverse_proxy localhost:8090
    }

    # 静态资源托管(Vue 前端)
    root * C:\vue\dist
    file_server

    # 自动 HTTPS(可选)
    tls your-email@example.com
}

说明:
yourdomain.com:替换为你自己的域名。
/api/*:所有以 /api 开头的请求都会被代理到 localhost:8090 。
root * C:\vue\dist:将 Vue 打包后的静态文件路径指向本地目录(请根据实际情况修改)。
file_server:启用静态文件服务。
tls your-email@example.com :启用自动 HTTPS,Caddy 会自动申请并续订 Let’s Encrypt 证书(需要域名解析到当前服务器)。
✅ 运行 Caddy
16. 测试配置文件
在命令行中运行以下命令,测试 Caddyfile 是否有语法错误:
caddy validate
如果没有报错,说明配置文件是正确的。

17. 启动 Caddy
运行以下命令启动 Caddy:
caddy run
如果一切正常,Caddy 将开始监听 80 和 443 端口,并自动申请 SSL 证书(如果配置了 tls )。

这里需要注意的是,caddy run命令运行完后,不能关掉cmd窗口,需要一直开启,不然服务就挂了。

✅ 验证服务

  1. 浏览器访问
    访问 http://yourdomain.com ,应能看到 Vue 前端页面。
    访问 http://yourdomain.com/api/xxx ,应能正确代理到 Spring Boot 后端。
  2. 检查日志
    如果遇到问题,可以查看 Caddy 的日志:
    caddy logs
    ✅ 附:若依的caddy的配置文件

127.0.0.1:3308 {
# 启用日志
#log {
# output file logs/access.log
# format json
}
# 静态文件服务 - 前端文件
root * C:\wechat\project\dist

# 开启gzip压缩
encode gzip

# 处理SPA路由 - 所有不存在的路径重定向到index.html
#try_files {path} /index.html

# API请求反向代理 - 将/dev-api开头的请求转发到后端
handle /prod-api/* {
    uri strip_prefix /prod-api
    reverse_proxy localhost:9900
}

# 处理WebSocket连接 (如果有需要)
#handle /websocket/* {
  #  reverse_proxy localhost:8080
#}

# 默认处理前端静态文件
handle {
    file_server
}
自动 HTTPS(可选)
#tls your-email@example.com
}


四、打包项目,并拷贝到指定路径下

打包在这里就不做解释,将后端打包成jar,前端打包成dist,放在指定的路径下:C:\wechat\project,然后我们就可以写一个bat脚本来实现启动项目了:


@echo off

rem jar平级目录
set AppName=us-chen-wechat.jar
set LOGFILE=admin.log

rem JVM参数(新增-Xloggc:gc.log 输出GC日志)
set JVM_OPTS="-Dname=%AppName% -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC -Xloggc:gc.log"

ECHO.
ECHO.  [1] 启动 %AppName%
ECHO.  [2] 关闭 %AppName%
ECHO.  [3] 重启 %AppName%
ECHO.  [4] 查看运行状态 %AppName%
ECHO.  [5] 退 出
ECHO.

ECHO.请输入选择项目的序号:
set /p ID=
	IF "%ID%"=="1" GOTO start
	IF "%ID%"=="2" GOTO stop
	IF "%ID%"=="3" GOTO restart
	IF "%ID%"=="4" GOTO status
	IF "%ID%"=="5" EXIT
PAUSE
goto:eof

:start
    set pid=
    for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
		set pid=%%a
		set image_name=%%b
	)
	if defined pid (
		echo %AppName% 已经在运行,PID: !pid!
		PAUSE
		goto:eof
	)

	echo 正在启动 %AppName% ...
 	start  /B javaw %JVM_OPTS% -jar %AppName% >> admin.log 2>&1&
	echo 启动成功...
goto:eof

:stop
    set pid=
	for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
		set pid=%%a
		set image_name=%%b
	)
	if not defined pid (
		echo %AppName% 没有运行
	) else (
		echo 正在关闭 %image_name%,PID: %pid% ...
		taskkill /f /pid %pid%
	)
goto:eof

:restart
	call :stop
	timeout /t 3 >nul
	call :start
goto:eof

:status
    set pid=
	for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %AppName%`) do (
		set pid=%%a
		set image_name=%%b
	)
	if not defined pid (
		echo %AppName% 当前未运行
	) else (
		echo %AppName% 正在运行,PID: %pid%
	)
goto:eof

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到