如何在运行WHM/cPanel的CentOS 7.9 KVM VPS上部署Spring Boot应用到子域名
部署Spring Boot应用到cPanel子域名的实操步骤
1. 前置环境准备
- 首先登录WHM确认服务器已安装对应版本的JDK:Spring Boot 2.x版本适配JDK 8/11,Spring Boot 3.x版本适配JDK 17,CentOS 7下可直接执行命令
yum install java-11-openjdk-devel -y安装,安装完成后执行java -version验证版本正确。 - 登录对应站点的cPanel面板,创建目标子域名,记录子域名对应的站点根目录,默认路径为
/home/你的cPanel用户名/public_html/子域名前缀。
2. 本地应用打包配置
- 打包前修改Spring Boot配置文件
application.properties:- 配置未被占用的服务端口,避免和cPanel占用的80、443等端口冲突,示例:
server.port=8080 - 按需配置上下文路径,默认根路径配置为
server.servlet.context-path=/
- 配置未被占用的服务端口,避免和cPanel占用的80、443等端口冲突,示例:
- 将项目打包为可执行jar包,得到类似
demo-0.0.1-SNAPSHOT.jar的文件。
3. 上传应用到服务器
- 可以通过cPanel文件管理器、SFTP工具,将jar包上传到自建的应用目录,比如
/home/你的cPanel用户名/app/,不要放在站点根目录避免文件被直接下载。
4. 配置应用后台自启动
- 使用root权限编辑systemd服务文件,路径为
/etc/systemd/system/自定义应用名.service,内容参考:
[Unit] Description=Spring Boot Application After=network.target [Service] User=你的cPanel用户名 Group=你的cPanel用户组 WorkingDirectory=/home/你的cPanel用户名/app/ ExecStart=/usr/bin/java -jar demo-0.0.1-SNAPSHOT.jar Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
- 依次执行以下命令生效配置:
- 重载服务配置:
systemctl daemon-reload - 启动应用:
systemctl start 自定义应用名.service - 设置开机自启:
systemctl enable 自定义应用名.service
- 重载服务配置:
- 执行
systemctl status 自定义应用名.service或curl http://127.0.0.1:8080验证应用启动正常。
5. 配置子域名反向代理
cPanel默认使用Apache作为Web服务,直接在子域名站点根目录新建.htaccess文件,添加以下转发规则即可:
RewriteEngine On RewriteCond %{REQUEST_URI} ^/.* RewriteRule ^(.*)$ http://127.0.0.1:8080/$1 [P,L]
保存后所有访问子域名的请求会自动转发到本地运行的Spring Boot应用,如需配置HTTPS,直接在cPanel中为子域名申请SSL证书即可,无需修改转发规则。
注意事项
- 确认防火墙开放应用使用的端口,cPanel默认使用firewalld的话,执行
firewall-cmd --add-port=8080/tcp --permanent && firewall-cmd --reload即可放行端口。 - 应用启动异常时可执行
journalctl -u 自定义应用名.service -f查看实时运行日志排查问题。 - 如果服务器使用Nginx作为Web服务,对应修改子域名的Nginx配置添加反向代理规则即可,逻辑和Apache一致。
内容的提问来源于stack exchange,提问作者KenobiBastila
相关产品推荐
相关产品推荐

