gpt4 book ai didi

Nginx 提供静态文件并收到 403 禁止

转载 作者:行者123 更新时间:2023-12-03 06:10:03 28 4
gpt4 key购买 nike

只是想帮助别人。是的,您只想使用 nginx 提供静态文件,并且 nginx.conf 中的所有内容都正确:

location /static {
autoindex on;
#root /root/downloads/boxes/;
alias /root/downloads/boxes/;
}

但是,最终你还是失败了。您从浏览器收到“403 禁止”...

----------------------------------------------------答案如下: ----------------------------------------------------

解决方案非常简单:

<小时/>

方法 1:以“/root/downloads/boxes/”所有者的用户身份运行 nginx

nginx.conf中:

#user  nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;

是的,在第一行“#user noboy;”中,删除“#”,并将“nobody”更改为您的Linux/OS X 中自己的用户名,即更改为“root”进行测试。重启nginx。

注意,你最好不要以root身份运行nginx!这里只是为了测试,这对黑客来说是危险的。

更多引用,请参见nginx (engine X) – What a Pain in the BUM! [13: Permission denied]

<小时/>

方法 2:将“/root/downloads/boxes/”所有者更改为“www-data”或“nobody”

终端中:

ps aux | grep nginx

获取运行nginx的用户名。应为'www-data''nobody',由nginx版本决定。然后在终端中点击(例如使用'www-data'):

chown -R www-data:www-data /root/downloads/boxes/

------------------------------------------更重要的事情是:---- --------------------------

这些父目录"/""/root""/root/downloads"应授予执行(x)权限到'www-data''nobody'。即

ls -al /root
chmod o+x /root
chmod o+x /root/downloads

更多引用,请参见Resolving "403 Forbidden" errorNginx 403 forbidden for all files

最佳答案

您应该授予 nginx 读取该文件的权限。这意味着您应该授予运行 nginx 进程的用户读取该文件的权限。

运行 nginx 进程的用户可以使用 nginx 配置中的 user 指令进行配置,通常位于 nginx.conf 顶部的某个位置:

user www-data

http://wiki.nginx.org/CoreModule#user

您提供给 user 的第二个参数是组,但如果您不指定它,它将使用与用户相同的参数,因此在我的示例中,用户和组都是www-data

现在您想要使用 nginx 提供服务的文件应该具有正确的权限。 Nginx 应该有读取这些文件的权限。您可以向组 www-data 授予对文件的读取权限,如下所示:

chown :www-data my-file.html

http://linux.die.net/man/1/chown

使用chown,您可以更改文件的用户和组所有者。在此命令中,我仅更改组,如果您也想更改用户,则可以在冒号之前指定用户名,例如 chown www-data:www-data my-file.html。但是正确设置组权限应该足以让 nginx 能够读取该文件。

关于Nginx 提供静态文件并收到 403 禁止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16808813/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com