You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在1&1云服务器部署Gradle构建的Spring应用的问题及解决

解决Spring Boot应用通过Apache反向代理对外访问的问题

我之前也碰到过一模一样的情况,你的Spring Boot JAR在服务器本地能正常运行,但外部访问my-site-ip:8090超时,核心问题大概率是没有通过Apache做反向代理转发请求——哪怕你开了8090的TCP规则,很多云服务器或机房的网络环境里,直接暴露非标准端口会有额外限制,用Apache做代理不仅能解决访问问题,还能把请求转到更通用的80/443端口,访问更方便。

下面是完整的解决步骤:

1. 先启用Apache的代理模块

Ubuntu下的Apache默认没开启代理相关模块,先执行这两个命令启用:

sudo a2enmod proxy
sudo a2enmod proxy_http

2. 创建并配置应用的虚拟主机文件

在/etc/apache2/sites-available/目录下新建你的应用配置文件,比如Myapp.conf:

sudo nano /etc/apache2/sites-available/Myapp.conf

把下面的配置粘贴进去(记得替换成你的服务器IP或域名):

<VirtualHost *:80>
    ServerName your-server-ip  # 或者填你的域名,比如 myapp.com
    ServerAlias www.your-server-ip  # 可选,域名的别名

    ProxyRequests Off
    ProxyPreserveHost On

    # 把外部请求转发到本地8090端口的Spring Boot应用
    ProxyPass / http://localhost:8090/
    ProxyPassReverse / http://localhost:8090/

    # 可选:添加日志方便排查问题
    ErrorLog ${APACHE_LOG_DIR}/myapp-error.log
    CustomLog ${APACHE_LOG_DIR}/myapp-access.log combined
</VirtualHost>

3. 启用配置并重启Apache

执行命令启用这个虚拟主机配置:

sudo a2ensite Myapp.conf

然后重启Apache让配置生效:

sudo systemctl restart apache2

额外要确认的几个点

  • 先在服务器本地测试Spring Boot应用:用curl http://localhost:8090确认应用能正常响应
  • 检查Ubuntu防火墙规则:执行sudo ufw status,确保80端口(HTTP)是允许的(现在通过Apache的80端口访问,8090只需要允许本地访问,甚至可以删掉外部的8090规则,更安全)
  • 云服务器用户还要确认安全组开了80端口的入站规则

配置完成后,你直接访问your-server-ip或者你的域名就能看到Spring Boot应用了,不用再加8090端口啦。

内容的提问来源于stack exchange,提问作者qz_99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:09:51