Azure App Service(Linux)挂载存储文件无法通过公网URL访问
Linux版Azure App Service挂载Blob容器后公网访问文件报404的排查方案
问题现象
- 已完成Linux版Azure App Service与Azure Blob容器的挂载配置,遵循官方指南操作
- Blob容器已开启匿名访问,SSH终端、Kudu工具中均可正常访问挂载目录及其中的文件
- 通过公网URL访问挂载内文件时返回HTTP 404错误,相同方案在Windows版App Service中可正常运行
排查与解决步骤
1. 检查Web服务器静态资源路径配置
Linux版App Service默认使用Nginx/Apache作为Web服务器,需确保挂载目录被配置为静态资源可访问路径:
- 若使用Nginx,编辑站点配置文件(路径通常为
/etc/nginx/sites-available/default),添加或确认以下规则:location /media/ { root /home/site/wwwroot; try_files $uri $uri/ =404; } - 保存配置后重启Nginx:
sudo service nginx restart
2. 修正挂载目录的权限设置
Linux系统权限会限制Web服务器对文件的访问:
- 执行命令查看挂载目录权限:
ls -ld /home/site/wwwroot/media - 赋予Web服务器运行用户(通常为
www-data或nginx)读取权限:sudo chmod -R 755 /home/site/wwwroot/media sudo chown -R www-data:www-data /home/site/wwwroot/media
3. 确认虚拟应用程序路径映射
在Azure门户的App Service配置中检查路径映射:
- 进入「配置」>「路径映射」,确认
/media路径已配置为虚拟目录/应用程序,物理路径指向/home/site/wwwroot/media
4. 校验文件路径的大小写一致性
Linux系统区分文件名大小写,需确保URL中的路径与实际文件路径完全匹配:
- 在Kudu中确认
media目录下存在目标文件(如naa.jpg),检查文件名大小写是否与URL中的一致
5. 验证存储挂载的类型与路径设置
检查存储挂载的配置参数:
- 确认挂载类型为「Blob容器」,挂载路径设置为
/home/site/wwwroot/media(需与Web服务器的访问路径对应)
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

