Ubuntu终端部署SpringBoot+Apache2遇503错误求助
问题诊断与解决步骤
核心问题定位
Apache错误日志中的AH01114: HTTP: failed to make connection to backend: 127.0.0.1和Connection refused明确说明:你的SpringBoot应用没有在8080端口正常启动,或者启动失败,导致Apache无法连接后端服务,返回503错误。
1. 先确保SpringBoot应用能独立运行
这是最关键的前提,必须先让应用自身能访问,再配置Apache代理:
- 检查8080端口是否有Java进程监听:
如果没有任何输出,说明应用未启动。ss -tulpn | grep 8080 - 手动启动应用并查看启动日志:
- 方式1:用Maven直接启动
cd /var/www/andyrojaslab08.tk/repo333 ./mvnw spring-boot:run - 方式2:用jar包启动(选你项目对应的jar,比如
lab08xy.jar)cd /var/www/andyrojaslab08.tk java -jar lab08xy.jar --server.port=8080
- 方式1:用Maven直接启动
- 启动成功后,测试本地访问:
如果能返回正常页面/数据,说明应用没问题;如果报错,根据启动日志排查(比如数据库连接、依赖缺失等)。curl http://127.0.0.1:8080
2. 确认Apache代理模块已启用
Apache反向代理依赖proxy和proxy_http模块,执行以下命令启用并重启Apache:
a2enmod proxy proxy_http systemctl restart apache2
3. 优化Apache虚拟主机配置
你的配置中有冗余项,修正后更简洁:
<VirtualHost *:80> ServerName andyrojaslab08.tk ProxyPreserveHost on ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
- 删掉了
DocumentRoot:因为用的是反向代理,不需要指定静态文件根目录,避免混淆。 - 规范了
ProxyPass的空格格式:虽然多空格不影响功能,但保持统一更易维护。
修改后重启Apache:
systemctl restart apache2
4. 修正/etc/hosts的重复映射
/etc/hosts中将andyrojaslab08.tk同时映射到3个IP,可能导致解析混乱,保留一条即可:
127.0.0.1 andyrojaslab08.tk ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
5. 测试最终效果
完成以上步骤后,重新测试:
curl andyrojaslab08.tk
如果返回正常内容,说明配置成功;如果还是503,再检查Apache错误日志和SpringBoot应用状态。
内容的提问来源于stack exchange,提问作者Andy Salim Rojas Hinojosa
相关产品推荐
相关产品推荐

