nginx 部署静态网站提示 403 错误

124 天前
 Rebron1900

我在 Github Action 中用 rsync 通过 ssh 部署了生成的静态网站到我的 VPS 上,并用 nginx 做了发布,但是访问时提示 403 错误,log 日志如下:

2024/07/22 15:40:09 [error] 68243#68243: *7557 "/home/*****/data/blog-data/index.html" is forbidden (13: Permission denied), client: ***.***.**.**, server: blog.com, request: "GET / HTTP/1.1", host: "blog.com"

我尝试根据 GPT4o 给的解决方案,将改目录用户组改为了 www-root 但是依旧 403 错误。

也尝试过以下操作,也依旧 403 。

# 设置目录权限为 755  
find /home/*****/data/blog-data -type d -exec chmod 755 {} \;  

# 设置文件权限为 644  
find /home/*****/data/blog-data -type f -exec chmod 644 {} \;  

nginx 配置文件如下:

server {
    listen              443 ssl;  
    server_name         1900.live;
    
    include snippets/ssl-params.conf;

    location / {
        root /home/****/data/blog-data;
        index index.html;
    }



    location ~ /.well-known {
        allow all;
    }
  

    client_max_body_size 50m;
}
847 次点击
所在节点    问与答
9 条回复
Rebron1900
124 天前
虚心向各位大佬请教。
totoro625
124 天前
chmod chown 执行的时候加上-R 试试
Rebron1900
124 天前
试过了,依旧不行。
cnrting
124 天前
让我上去看看
shixinyu
124 天前
不能放在 /home 下的子目录,会有权限问题。
放在 /opt 下试试,另外如果是红帽系还需要看看是否关闭了 SELinux 。
jason1121
124 天前
先看下 nginx 的 worker 用户用的是哪个:grep user /etc/nginx/nginx.conf 。

如果 worker 不是 ***** 的话,它是没有权限进到 ***** 的家目录的。
Rebron1900
124 天前
@shixinyu 我试着放在 var 下,可以了,真是药到病除呀。
另外,我可以简历软链接到个人目录中吗?
Rebron1900
124 天前
@jason1121 懂了,谢谢大佬。
amrice
124 天前
这不权限不足吗,看看 nginx 安装目录所属用户和用户组,然后 chown-R blog-data ,权限改 775 试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1059171

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX