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

AppEngine代理Spring Boot应用部分静态文件返回403错误求助

问题排查与解决方案

1. 检查代理Servlet的转发逻辑

  • 核对smiley-http-proxy-servlet的初始化配置,确认是否设置了filterRules这类参数,意外拦截了runtime.*.js路径。
  • 查看代理应用的日志:本地运行时查看控制台输出,部署到App Engine后去Cloud Logging搜索请求日志,确认代理转发runtime.js请求到VM后,VM返回200,但代理自身是否有额外拦截逻辑(比如Spring Security规则)将响应修改为403。

2. 对比两种访问方式的请求头差异

  • 用浏览器开发者工具抓包,分别查看直接访问VM的runtime.js请求头,以及通过代理访问的请求头,重点对比以下字段:
    • Referer:部分后端安全配置会限制非预期来源的请求
    • User-Agent:若VM的Spring Boot配置了UA白名单,代理的UA可能不在名单范围内
    • Host:代理转发时是否修改了Host头,导致VM的虚拟主机配置不匹配

3. 检查App Engine的网络权限

  • 确认App Engine与VM处于同一个VPC网络,或已配置VPC peering,保证出站流量能正常到达VM。
  • 检查App Engine的服务账号是否拥有Compute Network User角色,允许其访问VM所在的网络资源。

4. 排查代理应用自身的安全配置

  • 如果代理应用集成了Spring Security,检查SecurityFilterChain规则,确认是否误将/runtime.*.js这类路径加入了权限校验。
  • 查看代理应用的配置文件(application.properties/application.yml),确认是否有针对静态资源的特殊配置,比如spring.resources.static-locations是否覆盖了代理转发路径。

关于专业支持

若上述排查均无法解决问题,可登录Google Cloud控制台提交支持工单,提交时需附带以下信息:

  • VM和App Engine的资源ID
  • 代理配置的核心代码片段
  • 直接访问与代理访问的请求/响应日志截图
  • VM的访问日志片段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:37:13