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

谷歌云部署Laravel后POST请求报delayed connect error:111求助

问题:Google Cloud部署Laravel后POST请求失败,GET请求正常

已在Google Cloud部署Laravel项目,搭建了VM、负载均衡器并配置了CDN。最初负载均衡器未启用HTTPS,通过负载均衡器IP访问一切正常;后续配置HTTPS并创建证书,更新域名DNS的名称服务器后,网站显示正常,但提交表单(POST请求)时出现以下错误:

upstream connect error or disconnect/reset before headers. reset reason: remote connection failure, transport failure reason: delayed connect error: 111

GET方法可正常工作,POST请求的AJAX截图如下:
POST请求错误截图1
POST请求错误截图2

排查与解决方案

1. 检查负载均衡器端口映射配置

  • 确认HTTPS前端转发规则是否指向后端服务的正确端口:如果后端VM的Web服务器(Nginx/Apache)监听80端口,需确保后端服务的端口配置为80(而非443,除非VM本地配置了HTTPS)
  • 核对负载均衡器转发规则,确保443端口的流量正确映射到后端服务的目标端口,避免端口不匹配导致连接被拒绝

2. 验证防火墙规则

  • 检查Google Cloud防火墙是否允许负载均衡器健康检查IP段(130.211.0.0/22、35.191.0.0/16)访问后端VM的目标端口
  • 确认VM实例的入站防火墙规则未限制POST方法(HTTP/HTTPS规则默认包含所有请求方法,但若自定义规则需排查是否误拦截POST)

3. 核对Laravel CSRF配置

  • 确保页面已正确引入CSRF令牌:<meta name="csrf-token" content="{{ csrf_token() }}">
  • AJAX请求需携带X-CSRF-TOKEN请求头,示例代码:
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    
  • 检查app/Http/Middleware/VerifyCsrfToken.php,确认当前域名未被错误排除,路径规则无配置错误

4. 检查CDN转发规则

  • 确认Google Cloud CDN未拦截POST请求:CDN默认仅缓存GET/HEAD请求,需确保POST流量被正确转发到源站负载均衡器,无错误的缓存或拦截规则

5. 排查后端VM日志

  • 登录后端VM,查看Web服务器错误日志:
    • Nginx日志路径:/var/log/nginx/error.log
    • Apache日志路径:/var/log/apache2/error.log
  • 查看Laravel应用日志(storage/logs/laravel.log),定位是否存在应用层面的异常(如权限错误、路由匹配失败)

6. 验证负载均衡器健康状态

  • 确认后端VM在负载均衡器的健康检查中处于正常状态:如果健康检查失败,负载均衡器会停止向该VM转发流量,导致连接失败
  • 检查健康检查的路径(如/或自定义健康端点)是否返回200状态码,端口配置与后端服务一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 17:12:48