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

Drupal 9.50大文件上传错误:请求发至错误服务器排查求助

排查Drupal 9.5大文件上传问题的方向

1. 验证Nginx配置的正确性与生效范围

  • 确认client_max_body_size 8MB;配置在生产站点www.site.com对应的server块中,而非全局http块或开发站点的server块。如果配置在错误的server块,生产请求不会继承该设置。
  • 检查上传接口对应的location块(如Drupal文件上传路由对应的/system/files或自定义上传路径)是否单独设置了更小的client_max_body_size,嵌套配置会覆盖上层设置。
  • 执行nginx -t验证配置语法无误,再运行systemctl reload nginx确保配置重载生效。

2. 检查PHP上传相关配置限制

Drupal的文件上传同时受PHP配置约束,需确保以下参数符合要求:

  • upload_max_filesize = 8M(或更大)
  • post_max_size = 10M(需大于upload_max_filesize,因为POST请求包含文件及表单数据)
  • memory_limit:设置足够值以处理大文件解析
  • 找到Ubuntu上的PHP-FPM配置文件(如/etc/php/7.4/fpm/php.ini,根据实际PHP版本调整),修改后执行systemctl restart php7.4-fpm重启服务。
  • 登录Drupal后台,访问/admin/reports/status查看当前PHP配置值,确认修改已生效。

3. 溯源错误日志中的开发域名问题

  • 检查Nginx的server块优先级:确认www.site.com的server块未被dev9.site.com的默认server覆盖。查看Nginx配置中server_name的设置,生产站点的server块应明确指定server_name www.site.com;,若存在default_server标记,需确保生产站点的server块使用该标记。
  • 排查本地/服务器的DNS解析:检查服务器hosts文件或DNS配置,确认www.site.com未被错误解析到开发服务器IP。
  • 检查Drupal的settings.php:确认$base_url未被设置为dev9.site.com,同时排查是否存在通过环境变量动态设置站点地址的代码(如$base_url = getenv('DRUPAL_BASE_URL');)。
  • 查看Drupal后台/admin/config/system/site-information中的“站点地址”,确认是www.site.com。

4. 排查中间层(反向代理/CDN)的限制

  • 若生产站点前端有反向代理、负载均衡或CDN,需检查这些中间层的请求体大小限制,确保其允许的上传大小不小于8MB。
  • 确认中间层的路由规则,避免大文件上传请求被错误转发到开发服务器。

5. 检查Drupal模块与自定义代码

  • 排查文件上传相关模块(如Media、Filefield Sources等)的配置,确认模块自身的上传大小限制设置为大于8MB。
  • 检查自定义模块或主题中的hook_form_alter等代码,是否修改了文件上传字段的大小限制,或篡改了上传请求的目标地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 22:00:56