一、安装jdk的环境:
这一步很简单,直接拿到安装包双击安装即可。
二、配置jdk的环境变量
- 默认安装的路径为:C:\Program Files (x86)\Java\jdk1.7.0_51
- 安装完成之后进行环境变量配置
- 右击计算机(此电脑)
- 点击属性
- 点击高级系统设置
- 点击环境变量
- 鼠标随便点击下面的系统变量
- 新建,变量名为:JAVA_HOME ,变量值为:C:\Program Files (x86)\Java\jdk1.7.0_51(安装路径)
- 到系统环境变量的path,点击编辑,然后点击编辑文本
- 在变量值里面的最前面或者最后面追加:[ ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; ]括号里面的内容都追加,然后点击确定
- 继续点击新建,变量名为:CLASSPATH,变量值为:[ .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar ]中括号里面的内容,包括小数点和分号,点击确定即可。
- 测试环境变量是否配置好,win+r,输入cmd,然后回车。
- 直接输入java,然后回车看看是不是有一大推汉字
- 直接输入javac,然后回车看看是不是有一大堆汉字
三、安装caddy,主要用来替代nginx的反向代理
需要先去下载caddy,下载地址: https://caddyserver.com/download?spm=5176.29317386.0.0.178d1db8z0ticM 。
将下载的 caddy.exe 文件复制到一个目录,例如: C:\caddy 。
可选:将 C:\caddy 添加到系统环境变量 PATH ,以便在任意位置运行 caddy 命令。
✅ 配置 Caddyfile
- 创建 Caddyfile
在 C:\caddy 目录下创建一个名为 Caddyfile 的文本文件,内容如下:
json
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
- 测试配置文件
在命令行中运行以下命令,测试 Caddyfile 是否有语法错误:
caddy validate
如果没有报错,说明配置文件是正确的。
- 启动 Caddy
运行以下命令启动 Caddy:
caddy run
如果一切正常,Caddy 将开始监听 80 和 443 端口,并自动申请 SSL 证书(如果配置了 tls )。
这里需要注意的是,caddy run命令运行完后,不能关掉cmd窗口,需要一直开启,不然服务就挂了。
✅ 验证服务
- 浏览器访问
访问 http://yourdomain.com ,应能看到 Vue 前端页面。
访问 http://yourdomain.com/api/xxx ,应能正确代理到 Spring Boot 后端。 - 检查日志
如果遇到问题,可以查看 Caddy 的日志:
caddy logs
✅ 附:若依的caddy的配置文件
shell
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脚本来实现启动项目了:
bash
@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
