TYPO3从v9.5.27升级至v10.4.21后前端出现GuzzleHttp连接报错
排查与解决步骤
检查站点域名与解析配置
TYPO3 v10 相比 v9 强化了前端渲染时的内部请求逻辑,生成站点地图、渲染异步内容块、钩子触发内部请求等场景都会主动请求当前站点绑定的域名,首先做以下检查:- 登录后台进入「站点管理」模块,确认对应站点绑定的域名配置正确,没有配置不存在的IPv6访问入口,本次报错提示的
xxxx:xxx:4020:805::200a为IPv6地址,优先核对相关配置 - 在服务器本地执行
curl -v 你的站点域名,测试服务器自身是否能正常访问站点,如果返回同样的网络不可达错误,说明是服务器本地的域名解析或者IPv6配置问题,可先将域名解析强制绑定到IPv4地址测试
- 登录后台进入「站点管理」模块,确认对应站点绑定的域名配置正确,没有配置不存在的IPv6访问入口,本次报错提示的
调整TYPO3 HTTP客户端配置
TYPO3 v10 默认使用Guzzle作为HTTP客户端,你可以在配置中强制指定使用IPv4解析,规避IPv6连接失败的问题:
编辑站点config/system/additional.php文件,加入以下配置:$GLOBALS['TYPO3_CONF_VARS']['HTTP']['curl']['CURLOPT_IPRESOLVE'] = CURL_IPRESOLVE_V4;配置添加完成后清空TYPO3全部缓存,重新访问前端验证是否恢复。
排查自定义/第三方扩展的请求逻辑
如果上述配置无效,逐一禁用非系统核心的第三方扩展、自定义扩展测试:
天气接口调用、第三方资源同步、数据上报类扩展都会发起外部HTTP请求,目标地址不可达时会抛出完全相同的Guzzle异常,定位到出问题的扩展后,修正对应请求的目标地址、超时参数或者网络策略即可。核对服务器出站规则
确认服务器的出站防火墙规则是否允许访问目标IP对应端口,若请求的是合法外部地址,可联系服务器运营商确认对应端口的出站访问是否被拦截。
内容的提问来源于stack exchange,提问作者Haroun
相关产品推荐
相关产品推荐

