开发者社区> 技术小阿哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Nginx 403 Forbidden 排错记录汇总

简介:
+关注继续查看

记录一

当你将 nginx 作为 web server 的时候,403 错误主要是下面两条原因:

一、所有者对目录没有写的权限。

此时可用 chmod 777 目录名 先完全放开权限,如果问题解决,则再慢慢缩小访问权限。

$ chown -R nginx_user:nginx_user /htdocs

二、未配置 index 的类型。

请在 nginx 相应 http 配置节添加 index 的配置。

index index.html index.php;

绝大部分这个报错都是各种权限问题

记录二

我把个人简历放在github上,但是访问很慢,就把这个静态简历迁移到我的VPS服务器上,使用nginx做web服务,访问时出现403错误

nginx配置(只展示重要部分):
server {
        listen  10000 ;
    server_name xxxx.xxxx.com ;
        access_log /home/resume/log/access.log main ;
        error_log /home/resume/log/error.log ;
    location / {
          root /home/resume/www ;
          index index.html ;
    }
}
访问结果:

1240

Paste_Image.png

查看nginx错误日志:

出现了关键字“Permission denied”

2016/12/23 14:02:26 [error] 5887#5887: *573 open() "/home/resume/www/index.html" failed (13: Permission denied), client: 192.168.15.2, server: xxxx.xxxx.com, request: "GET /index.html HTTP/1.0", host: "xxxx.xxxx.com"
排错记录:

一看是权限问题,马上把 /home/resume/www目录下的所有文件权限改为777 ,重新访问还是 403 ,反反复复折腾了很久,无解....
第二天晚上继续,怀疑是nginx配置错误,搜索 nginx html时找到这个文章nginx 代理本地的html
原来是nginx配置中的用户权限问题

  1. 查看nginx worker 用户,www-data 是nginx默认配置的

    1240

    Paste_Image.png

  2. 静态文件存放的文件夹用户是scott,组为executor ,所nginx用户为www-data导致权限问题(如果nginx配置的用户和静态文件的用户不匹配,那怕权限是777也会出现权限问题,具体看<nginx.conf> nginx用户权限)

    1240

    用户

  3. 配置nginx权限和静态文件统一

  4. 编辑nginx配置文件

    vim /etc/nginx/nginx.conf
  5. 修改文件第一行的为静态文件的用户和组

    # user 用户名 用户组  ; 这里的用户名和组就是静态文件的user scott executor ;

    1240

    Paste_Image.png

  6. 检查配置正确性

    nginx -t

    上面的命令执行后返回以下内容则成功

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
  7. 重启nginx

    nginx stopnginx start


当你将 nginx 作为 web server 的时候,403 错误主要是下面两条原因:

一、所有者对目录没有写的权限。

此时可用 chmod 777 目录名 先完全放开权限,如果问题解决,则再慢慢缩小访问权限。

$ chown -R nginx_user:nginx_user /htdocs

二、未配置 index 的类型。

请在 nginx 相应 http 配置节添加 index 的配置。

index index.html index.php;

绝大部分这个报错都是各种权限问题

记录三

论坛点击管理中心,出现403报错,权限问题

查看网站配置文件,添加管理员电脑的外网IP

只允许管理员自己的电脑外网IP可以访问,其他都禁止访问

重启Nginx服务,然后点击论坛工具,更新缓存就解决了这个问题


vim /home/lnmp/nginx/conf/vhost/*.conf

location ~ .*admin.* {

    allow 管理员电脑外网IP/32;

    deny all;


location ~ .*\.php?$ {

    allow 管理员电脑外网IP/32;

    deny all;


service nginx reload


最后要注意的是,在本地电脑添加服务器的外网IP和域名做个解析



本文转自 2012hjtwyf 51CTO博客,原文链接:http://blog.51cto.com/hujiangtao/1919441,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
13688
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载