nginx 403 Forbidden 排错记录

记录一次nginx 403错误的处理情况 ,当然nginx 403错误引起的原因有很多,这里记录的只是其中一种 (权限引发的问题)


场景:

我把个人简历放在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 ;
    }
}
访问结果:
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默认配置的


    Paste_Image.png
  2. 静态文件存放的文件夹用户是scott,组为executor ,所nginx用户为www-data导致权限问题(如果nginx配置的用户和静态文件的用户不匹配,那怕权限是777也会出现权限问题,具体看<nginx.conf> nginx用户权限)
    用户
  3. 配置nginx权限和静态文件统一
  • 编辑nginx配置文件
vim /etc/nginx/nginx.conf
  • 修改文件第一行的为静态文件的用户和组
# user 用户名 用户组  ; 这里的用户名和组就是静态文件的
user scott executor ;
Paste_Image.png
  1. 检查配置正确性
nginx -t

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

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  1. 重启nginx
nginx -s stop
nginx -c /etc/nginx/nginx.conf
参考:

推荐阅读更多精彩内容

  • 《老男孩Linux运维》笔记 隐藏Nginx软件版本号 一般来说,软件的漏洞都和版本有关。因此要尽量隐藏对访问用户...
    Zhang21阅读 2,200评论 0 28
  • 配置运行Nginx服务器用户(组) 用于配置运行Nginx服务器用户(组)的指令是user,其语法格式为: use...
    吃瓜的东阅读 2,710评论 0 37
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 79,019评论 12 120
  • 1. Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单...
    rosekissyou阅读 6,875评论 5 121
  • 上一篇《WEB请求处理一:浏览器请求发起处理》,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建...
    猿码道阅读 68,198评论 22 324