You need to enable JavaScript to run this app. Drupal 9部署在Azure App Service时持久化存储下文件访问500错误问题
优惠活动
大模型
产品
解决方案
定价
更多

Drupal 9部署在Azure App Service时持久化存储下文件访问500错误问题

问题根因

你遇到的Received an invalid status line: 'anges: bytes'报错,本质是Azure App Service前端反向代理,与挂载持久化存储后Apache的静态文件处理逻辑冲突导致:远程挂载的Azure存储/持久化home目录不属于容器本地文件系统,Apache默认的Sendfile文件发送机制对远程挂载目录兼容异常,会导致响应头截断,前端代理无法识别正常响应,从而返回500错误。Apache本地日志显示200是因为文件读取本身没有问题,问题出现在响应回传代理的环节。

可行解决方案

方案1(快速生效,无兼容问题):禁用Range请求支持

直接在Drupal根目录的.htaccess文件,或者Apache站点配置文件中添加如下规则,关闭Range请求处理即可解决:

# 禁用Range请求,避免头截断问题
RequestHeader unset Range
Header unset Accept-Ranges

修改完成后重启Apache服务即可,该方案仅会取消文件断点续传能力,不会影响站点的正常文件访问功能,适合大部分无断点续传强需求的场景。

方案2(保留Range请求能力):关闭Apache的Sendfile机制

在Apache的配置文件中,针对sites/default/files目录单独关闭Sendfile功能,禁用内核直接发送文件的逻辑,改用Apache用户态读取文件后返回:

<Directory "/var/www/html/sites/default/files">
    EnableSendfile Off
</Directory>

如果是用软链接到/home/files的方案,也可以直接针对/home/files目录设置规则:

<Directory "/home/files">
    EnableSendfile Off
</Directory>

该方案可以保留文件断点续传的能力,适配有视频、大文件分发需求的场景。

额外验证项

修改配置后可以再确认一次目录权限,确保容器内的Apache运行用户(默认www-data)对挂载的文件目录有读权限:

chown -R www-data:www-data /path/to/your/files/directory

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 03:06:06