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 共同决定。例如:
- 配置
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权限还控制文件删除行为,即使文件本身可写,若目录不可写,也无法删除该文件


















