nginx 踩坑之 403 Forbidden

        有一部分人在源码安装nginx的时候考虑到安全缘由,在Linux服务器上安装nginx的时候会建立一个普通用户nginx用户,防止别人经过攻击web服务器后获取到服务器的root权限,经过root来修改服务器的其余一些参数信息,登录服务器的权限为/sbin/nologin,等安装完后利用浏览器或者服务器curl访问,发现报403 Forbidden  ,去看error.log日志提示没有没有权限html

        这个是权限配置不正确致使nginx出现403 forbidden最多见的错误。nginx

       一、为了保证文件能正确执行,nginx既须要文件的读权限,又须要文件全部父目录的可执行权限。web

我通常安装nginx的时候通常喜欢安装在/usr/local/nginx(这个目录能够自定义设置,源码安装时在./configure 后添加“--prefix=你的安装路径”),当你要访问  html/image.jpg      nginx既须要image.jpg文件的可读权限,也须要/, /usr,/usr/local,/usr/local/nginx,/usr/local/nginx/html的能够执行权限。浏览器

解决办法:设置全部父目录为755权限,设置文件为644权限能够避免权限不正确。

    二、若是发现读取和执行都是能够的,则须要检查是文件的全部者是否时你建立的普通用户 安全

 通常你源码安装完后文件的全部者个所属组是你当前安装的用户,致使nginx用户没法访问和读取文件的内容服务器

解决办法:修改全部父目录及文件的所属组和全部者,

chown -R  nginx.nginx  ./usr/local/nginx/