V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
spencerqiu
V2EX  ›  NGINX

配置 Hexo 之后, Nginx 报 403

  •  
  •   spencerqiu · 2015-02-05 09:22:48 +08:00 · 6739 次点击
    这是一个创建于 3572 天前的主题,其中的信息可能已经有所发展或是发生改变。
    自行 google 了一下,看到是这样说的

    引起nginx 403 forbidden有二种原因,一是缺少索引文件,二权限问题。

    权限问题不清楚...索引也没办法啊,似乎 Hexo 的文件夹里本来就没有 index.html 这样的东西....
    12 条回复    2017-05-23 16:32:41 +08:00
    marshal
        1
    marshal  
       2015-02-05 09:45:36 +08:00
    hexo是静态博客系统,也就是通过hexo generate然后deploy成静态网页,再通过nginx让外面访问。
    如果是这样,我估计是目录权限问题吧。可以chmod 777测试一下。
    qq446015875
        2
    qq446015875  
       2015-02-05 11:14:20 +08:00 via Android
    亲,hexo不是这么玩的……是本地生成静态页面然后传到服务器上,那个public里才是要上传的,建议仔细看hexo.io的文档,或者去网上查查
    66beta
        3
    66beta  
       2015-02-05 11:17:35 +08:00
    楼主看下hexo文档吧,静态文件不用配置nginx了吧,默认都行
    Twinkle
        4
    Twinkle  
       2015-02-05 11:27:41 +08:00
    spencerqiu
        5
    spencerqiu  
    OP
       2015-02-05 11:40:45 +08:00
    @Twinkle
    = =就是跟着这篇玩的...结果玩脱了...
    spencerqiu
        6
    spencerqiu  
    OP
       2015-02-05 11:45:33 +08:00
    777 了还是不行...
    icylogic
        7
    icylogic  
       2015-02-05 12:12:37 +08:00 via Android   ❤️ 1
    nginx 中 server 或者 location 的 root 要定到 hexo 的 public ,这步如果没有问题, public 文件夹中也已经生成好静态文件 (应该是有 index),那么应该是权限问题。

    然后权限问题绝壁不要听那些告你777的,文件权限管理是用 linux 必须学会的东西,必须像 Windows 开关机一样熟练掌握,找篇靠谱的文章看一下。如果你直接 Google nginx 为什么403,绝壁一堆 csdn 之类的文章告你 777,这就相当于你问为什么关机的时候 Windows 提示说有未保存的文档然后关不了机,别人告你长按电源5秒一样,你感受一下。

    你这里可能是没有递归授权,ls -l 看一下,对照一下 nginx.conf 的 user 字段应该就知道了,但是具体还是你看了以后自己判断。
    Twinkle
        8
    Twinkle  
       2015-02-05 12:14:32 +08:00
    @spencerqiu
    最终的 /var/www/blog 目录下有 index.html 么?
    有的话试试把 /etc/nginx/nginx.conf 里面的 user nginx 改为 user root。我 CentOS 下出过这个问题。
    ryd994
        9
    ryd994  
       2015-02-05 15:54:53 +08:00 via Android
    先看看errorlog

    @Twinkle 用root跑服务这是作大死,还不如楼上说777的呢

    权限好办 chmod 和chown 用--reference 复制Nginx的demo的权限即可
    qq446015875
        10
    qq446015875  
       2015-02-05 22:46:41 +08:00
    cdy
        11
    cdy  
       2015-07-22 12:27:32 +08:00
    1, 执行 hexo g,会出现静态文件(public文件夹)
    2, 设置nginx用户组为root (而不是www-data或者其他)
    zhaoshijun
        12
    zhaoshijun  
       2017-05-23 16:32:41 +08:00   ❤️ 1
    检查博客文件存放目录,索引文件并没有缺少。域名目录下 public_html 文件夹权限用户与组为 leyar。

    检查配置文件 /etc/nginx/nginx.conf, 发现第一行 user 为 nginx,尝试将其改为 leyar, 重启 nginx sudo systemctl restart nginx,依然 403。

    尝试改为 root 并重启 nginx, 再次刷新网页,问题解决。
    猜想原因应该是使用 sudo 安装的 nginx,故 user 为 root.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2693 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.