我正在使用 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 :ubuntu
user ubuntu;
鉴于我之前的回答不起作用,这可能有用!