【发布时间】:2023-03-11 04:37:01
【问题描述】:
我对 nginx 和 linux (centos) 有疑问。 Nginx 使用磁盘作为大 POST 请求的临时缓冲区。 默认情况下,缓存位于此处:
/var/cache/nginx/client_temp/ (drwx------. 2 nginx root)
它可以工作,但磁盘非常小。当您尝试上传一个大文件(或同时上传多个文件)时,磁盘已满。
所以我们添加了一个新磁盘 (/data) 并将 client_body_temp_path 参数更改为新磁盘 /data/tmp。
当我们尝试上传内容时,出现权限错误:
nginx: [emerg] mkdir() "/data/tmp" failed (13: Permission denied)
nginx: configuration file /etc/nginx/nginx.conf test failed
我通过以下方式更改此目录的权限 (chmod/chown):
- 与默认目录权限相同:
drwx------. 2 nginx root - 完全访问权限:
drwxrwxrwx. 2 nginx nginx
但这不起作用(同样的错误)。 如果我在终端中以 nginx 用户身份登录,我可以在此目录中访问/创建文件。错误仅在 nginx 服务器内部。
有些奇怪: 如果目录位于分区上:
/var/... => permission ok
/tmp/... => permission ok
/data/... => permission not ok
var 和 tmp 在同一个物理磁盘上(但不同的分区)。 data 是另一个磁盘。
我想为 Linux 中的特定驱动器/磁盘授予用户“nginx”的授权访问权限吗?
【问题讨论】: