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