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

使用Caddy反向代理转发API请求至后端时遭遇405错误

问题原因及解决方案

核心问题:请求路径前缀不匹配

你遇到的405 (Method Not Allowed)本质是后端接收到的请求路径和实际接口路径不匹配,导致找不到对应方法的接口,最终返回405错误。

具体逻辑:

  • 前端请求的是https://website.com/api/something
  • 当前Caddy配置会把完整路径/api/something直接转发到后端localhost:8080/api/something
  • 但你的Spring后端接口实际是/something(不带/api前缀),后端找不到对应接口,部分Spring框架会在路径不存在时返回405而非404,从而触发报错。

修复方案:修改Caddy配置,剥离/api前缀再转发

更新Caddy配置,在代理前移除/api前缀,让后端收到正确的接口路径:

www.website.com {
        redir https://website.com{uri} # 重定向www子域名到主域名
}

website.com {
        root * /var/www/html # React构建文件存放路径

        # 提供静态文件服务
        file_server

        # 客户端路由 fallback 到index.html
        try_files {path} /index.html 

        # 专门处理/api开头的请求
        handle /api/* {
                uri strip_prefix /api  # 移除请求路径中的/api前缀
                reverse_proxy localhost:8080 # 转发到Spring后端
        }
}

额外排查点

如果修改后仍有问题,可以检查:

  • 确认Spring后端的控制器注解路径确实不带/api前缀(比如@RequestMapping("/something")而非@RequestMapping("/api/something"))
  • 核对前端请求的HTTP方法(GET/POST等)和后端接口支持的方法是否一致
  • 查看Caddy日志(journalctl -u caddy)和Spring后端日志,确认转发后的请求路径、方法是否符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 20:37:37