跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

如何利用 proxy_store_access 设置镜像存储文件的访问权限指南

proxy_store_access用于控制Nginx使用proxy_store落盘静态资源时新生成文件及父目录的系统级读写权限,仅作用于新写入文件,不修改已有文件权限,且依赖proxy_store on及上游成功响应生效。 proxy_store_access 用于控制 Nginx 在使用
proxy_store
落盘静态资源时,所创建文件和目录的权限。它不控制 Nginx 进程本身的运行权限,而是直接影响缓存文件能否被读取、是否被其他进程误删或覆盖。 核心作用与生效前提 该指令仅在
proxy_store on
生效且上游响应成功(如 200)时起作用;它不会修改已存在文件的权限,只影响新写入的文件和自动创建的父级目录(前提是目录已存在或由 Nginx 可创建)。若目标路径父目录不存在,Nginx 不会自动创建,落盘失败——此时
proxy_store_access
也无从生效。 语法格式与常见配置 基本写法为:
proxy_store_access user:rw group:rw all:r;
其中三段分别对应:文件所有者(user)、所属组(group)、其他用户(all),权限可设为
r
(读)、
w
(写)、
rw
(读写)或
none
(无权限)。 生产环境推荐:
proxy_store_access user:rw group:rw all:r;
—— 允许 Nginx 进程读写,同时允许 Web 服务器(如另一 Nginx 或 Apache)以普通用户身份读取服务 高安全场景可收紧:
proxy_store_access user:rw group:none all:none;
—— 仅限 Nginx 自身访问,避免其他账户窥探镜像内容 注意:
all:rw
存在风险,尤其当存储目录位于共享文件系统或多人可登录服务器上时 配合 root/alias 的路径映射规则 权限实际应用到的文件路径,由
root
或
alias
指令 + 请求 URI 共同决定。例如: PHP数据库链接类(PDO+Access) PHP数据库链接类(PDO+Access) 下载 配置
root /data/mirror; location /img/ { proxy_store on; proxy_store_access user:rw group:rw all:r; }
,请求
/img/logo.png
将落盘至
/data/mirror/img/logo.png
配置
alias /data/video/hls/; location ^~ /jiaoyu/data/video/hls { proxy_store on; ... }
,请求
/jiaoyu/data/video/hls/123.ts
实际写入
/data/video/hls/123.ts
无论哪种模式,
proxy_store_access
都作用于最终生成的完整文件路径 权限调试与常见问题 若发现文件写入失败或 403 错误,需按顺序排查: 确认 Nginx worker 进程运行用户(如
www-data
或
nginx
)对父目录有
x
(执行)权限(即能进入目录) 检查父目录是否已存在,且其权限允许该用户创建子文件(通常需
rwx
) 用
ls -l
查看已生成文件的实际权限,比对是否与
proxy_store_access
设置一致 注意:Linux 中目录的
w
权限还控制文件删除行为,即使文件本身可写,若目录不可写,也无法删除该文件

相关文章