Nginx:访问已挂载的文件时出现“权限被拒绝”

Nginx:访问已挂载的文件时出现“权限被拒绝”

我正在使用 nginx 来提供静态文件服务。一切按预期运行,但现在我正尝试访问文件系统上挂载的文件。

因此,我下载了一个 zip 文件,并将ratarmount其挂载到文件系统上。但是,当我尝试访问这些文件时,我收到 404 错误,而当我检查 error.log 时,我看到了以下内容:

2024/04/27 08:22:47 [crit] 111404#111404: *27 stat() "/var/www/html/forbes/rll/test.json" failed (13: Permission denied), client: 10.3.33.1, server: _, request: "HEAD /forbes/rll/test.json HTTP/1.1", host: "10.3.33.1"

这是目录的权限

ubuntu@myserver:~/www/html/forbes/rll$ ll
total 1630
dr-xr-xr-x 1 root   root         0 Apr 19 13:41 ./
drwxrwxrwx 1 ubuntu ubuntu       0 Apr 27 08:30 ../
-r-xr-xr-x 1 root   root   1665541 Apr 19 13:21 test.json*

有人知道是否无法在文件系统上挂载的文件上使用 nginx 吗?或者我是否应该进行任何更改才能使其正常工作。

答案1

您需要做的就是选择以下任一选项:

更改所有权:运行sudo chown -R www-data:www-data /var/www/html/forbes/rll/(假设 Nginx 以www-data用户和组身份运行)。这将递归地将目录及其内容的所有权更改为 Nginx 用户。

或者

更改权限:运行sudo chmod -R 755 /var/www/html/forbes/rll/授予Nginx用户读取和执行的权限。

完成这些更改后,重新加载 Nginx 以应用更新:sudo service nginx reload

与提问者聊天后才意识到:

您可以更新 Nginx 配置user:在您的 Nginx 配置文件(通常是)中添加指令,以具有适当权限的用户nginx.conf身份运行 Nginx :ubuntuuser ubuntu;

鉴于我之前的回答不起作用,这可能有用!

相关内容