如何将Spring Boot REST API部署到BanaHost cPanel?
cPanel部署Spring Boot REST API 实操步骤
前置确认
首先确认你购买的BanaHost cPanel套餐已开通Java运行环境支持,若未开通可先联系主机商开通,同时确认服务器Java大版本和你本地打包Spring Boot用的Java版本一致。
第一步:本地打包Spring Boot项目
- 提前修改Spring Boot项目的配置文件(application.properties/application.yml):
- 数据库连接配置替换为cPanel上的MySQL地址、端口、数据库名、账号密码
- 服务端口改为未被占用的高位端口,比如
10086,避免和服务器其他服务冲突 - 提前配置跨域规则,也可以后续通过反向代理解决跨域问题
- 执行打包命令生成可执行jar包:
- Maven项目执行:
mvn clean package -DskipTests - Gradle项目执行:
gradle bootJar
- Maven项目执行:
- 打包完成后在项目的target或build/libs目录下得到后缀为
.jar的可执行文件
第二步:上传jar包到cPanel服务器
- 打开cPanel的文件管理器,进入你账号的根目录(不是public_html目录,是上层的用户根目录,路径一般为
/home/你的cPanel用户名/) - 新建专门存储Spring Boot项目的文件夹,比如命名为
springboot_api - 把本地打包好的jar包上传到该文件夹内
第三步:启动Spring Boot应用
根据你cPanel的可用功能选择对应启动方式:
方式1:使用自带Java应用管理器
- 在cPanel后台「软件」板块找到「Java应用管理器」入口,点击进入
- 点击「创建应用」,按提示填写配置:
- 应用目录选择刚才新建的
springboot_api文件夹 - 启动文件选择你上传的jar包
- 端口填写你之前在配置文件里设置的高位端口
- Java运行环境选择和本地打包版本一致的JDK
- 应用目录选择刚才新建的
- 点击启动,等待应用状态变为「运行中」即可
方式2:通过SSH后台启动(无Java应用管理器时使用)
- 在cPanel「安全」板块开启SSH访问,获取SSH连接信息后用SSH工具连接到服务器
- 进入jar包存放目录:
cd /home/你的cPanel用户名/springboot_api - 执行nohup命令后台启动应用,避免SSH断开后进程被终止:
nohup java -jar 你的jar包文件名.jar > run.log 2>&1 & - 执行
ps aux | grep java查看是否有对应Java进程,确认启动成功,启动异常可查看run.log日志排查问题
第四步:配置反向代理供前端调用
当前Spring Boot应用运行在服务器本地高位端口,需要配置反向代理把公网可访问的路径指向该端口:
- 你可以选择用子域或者主域子路径暴露API:
- 方案1:新建子域比如
api.yourdomain.com,根目录指向public_html/api - 方案2:直接使用主域的子路径比如
yourdomain.com/api
- 方案1:新建子域比如
- 进入上述路径的根目录,编辑
.htaccess文件,添加如下规则:
RewriteEngine On RewriteRule ^(.*)$ http://localhost:你配置的Spring Boot端口/$1 [P,L]
- 保存后即可通过
https://你配置的域名或路径/接口地址访问Spring Boot接口,前端直接调用该公网地址即可,无需额外处理跨域问题
常见问题排查
- 启动失败优先查看运行日志,常见原因为Java版本不匹配、数据库连接配置错误、端口被占用
- 反向代理不生效可联系主机商确认是否开启了
mod_proxy和mod_proxy_http模块 - 服务器重启后应用自动停止,可在Java应用管理器中设置开机自启,SSH启动的方式可添加cron定时任务检测进程状态,进程消失时自动重启
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

