技术解析

配置 Hexo 之后, Nginx 报 403
0
2021-05-26 18:22:53
idczone
自行 google 了一下,看到是这样说的

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

权限问题不清楚...索引也没办法啊,似乎 Hexo 的文件夹里本来就没有 index.html 这样的东西....
hexo是静态博客系统,也就是通过hexo generate然后deploy成静态网页,再通过nginx让外面访问。
如果是这样,我估计是目录权限问题吧。可以chmod 777测试一下。

亲,hexo不是这么玩的……是本地生成静态页面然后传到服务器上,那个public里才是要上传的,建议仔细看hexo.io的文档,或者去网上查查

楼主看下hexo文档吧,静态文件不用配置nginx了吧,默认都行

可以参考: http://blog.berry10086.com/Tech/deploy-hexo-to-vps/


= =就是跟着这篇玩的...结果玩脱了...

777 了还是不行...

nginx 中 server 或者 location 的 root 要定到 hexo 的 public ,这步如果没有问题, public 文件夹中也已经生成好静态文件 (应该是有 index),那么应该是权限问题。
然后权限问题绝壁不要听那些告你777的,文件权限管理是用 linux 必须学会的东西,必须像 Windows 开关机一样熟练掌握,找篇靠谱的文章看一下。如果你直接 Google nginx 为什么403,绝壁一堆 csdn 之类的文章告你 777,这就相当于你问为什么关机的时候 Windows 提示说有未保存的文档然后关不了机,别人告你长按电源5秒一样,你感受一下。
你这里可能是没有递归授权,ls -l 看一下,对照一下 nginx.conf 的 user 字段应该就知道了,但是具体还是你看了以后自己判断。


最终的 /var/www/blog 目录下有 index.html 么?
有的话试试把 /etc/nginx/nginx.conf 里面的 user nginx 改为 user root。我 CentOS 下出过这个问题。

先看看errorlog
用root跑服务这是作大死,还不如楼上说777的呢
权限好办 chmod 和chown 用--reference 复制Nginx的demo的权限即可


推荐楼主有空试试这个
http://scottqian.com/2014/06/20/my_new_choise_for_blogging/

1, 执行 hexo g,会出现静态文件(public文件夹)
2, 设置nginx用户组为root (而不是www-data或者其他)

检查博客文件存放目录,索引文件并没有缺少。域名目录下 public_html 文件夹权限用户与组为 leyar。
检查配置文件 /etc/nginx/nginx.conf, 发现第一行 user 为 nginx,尝试将其改为 leyar, 重启 nginx sudo systemctl restart nginx,依然 403。
尝试改为 root 并重启 nginx, 再次刷新网页,问题解决。
猜想原因应该是使用 sudo 安装的 nginx,故 user 为 root.

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服