Nginx proxy_store 无法在用户目录树上写入

Nginx proxy_store 无法在用户目录树上写入

CentOS 7 服务器用于共享主机。无 chroot。99% 的 WordPress 安装。

每个用户都会获得一个 /home/someuser 框架,包括 ~/web,所有可通过网络访问的文件都驻留在其中。以下所有目录(包括 web)的 chmod 为 0750,所有文件均为 0640。每个用户都会获得一个以 someuser:someuser 身份运行的 php-fpm 实例。Nginx 用户 nginx 在创建时被添加到 someuser 组。文件和目录归 someuser:someuser 所有。PHP/WordPress 对此很满意,nginx 在提供服务时没有任何问题。多年来一直运行良好。

现在我有一个“脏”的图片库,我不想直接复制到 Web 树上。我的计划是设置一个内部 nginx,server{}将该目录作为根目录,以按需提供这些图片,并且我希望主 nginxserver{}使用 proxy_store 仅将请求的图片保存在 Web 树上。

我无法让 nginx 在 ~/web 下写入。我尝试将 ~/web 上的所有内容 chmod 为 0760,但无济于事。我还尝试在目标目录中重新创建目录结构,但它仍然无法写入文件。

我是否应该在目录链中进一步放宽权限?我不太喜欢这个想法。我是否遗漏了什么?我在其他设置中可以正常工作,其中 nginx 用户是其写入树的所有者。

前任:

server {
   listen 8080;
   server_name blah.com;
   location / {
      root /home/someuser/messydir;
   }
}
server {
   root /home/someuser/web;
# lots of lines
   location /images {
      error_page 404 = @fetch;
      expires 7d;
   }
   location @fetch {
      internal;
      proxy_set_header Host blah.com;
      proxy_pass         http://localhost:8080;
      proxy_store        on;
      proxy_store_access user:rw group:r;
      root "/home/someuser/web/images";
   }
}

答案1

解决了!我在另一个论坛上得到了答案。

为了使此特定问题正常工作,包含“图像”的目录链需要具有执行权限(对于目录,请导航或 cd),而 nginx 写入的 images 目录也需要写入权限。因此,在我的设置中,images 目录需要设置为 0770,其上的所有目录都应设置为 0750。

相关内容