我正在使用带有 fastcgi 缓存的 nginx web 服务器。fastcgi_cache_path 设置为来自 nginx 的每个虚拟主机的 webroot 的子目录。(例如 /var/html/user01/httpdocs/nginx_cache ... /var/html/user02/httpdocs/nginx_cache。
正如我在响应头(x-cache hit)和 nginx_cache 目录中保存的数据中看到的那样,缓存本身运行良好。
因此,当我查看 nginx_cache 目录时,我可以看到所有者始终是 nginx。我想要做的是永久设置用户 (user01、user02 等) 对其 nginx_cache 文件夹的权限 (读取/删除)。
我已经尝试过: - 将所有权限递归更改为 user0x(将由 nginx 覆盖更改和新文件) - 搜索 nginx 配置(仅发现 nginx_store_access 也不起作用)
我怎么解决这个问题?
答案1
首先,您不应将缓存文件夹存储在 Web 根目录下/var/www/html/user01/httpdocs
,因为这样会将缓存内容公开给所有 Web 访问者。将其移至下/var/www/html/user01
一级,则内容将无法访问。
对于文件权限,您可以尝试将 ACL 应用于缓存目录,如下所示:
setfacl -d -m u:user01:rw ngx_cache
这将为目录分配一个 ACL ngx_cache
,使得缓存目录内的所有文件都可以被读取和写入user01
。