造成 nginx 403 forbidden 的几种原因

http://blog.csdn.net/fairplay_li/article/details/9411423


      Forbidden , 从字面意思上来讲是拒绝的意思,因此第一印象想到的就是权限问题了,意思就是说,你当前nginx用户对目标文件,如index.html等没有读权限。所以解决nginx权限问题的第一种方案就是开放权限。这里可以把欲访问的目标文件夹权限改为nginx用户可读,如:chmod -R 755 floder_name 

      除去这个原因,如果你要访问的目标文件根本就不存在,那自然会是403错误了,其实这个也是首要排除的问题,要保证欲访问的文件真实存在。

      第三个原因就是域名的原因了,这里举一个我工作中遇到的问题,我有一台nginx服务器作为代理使用,他有两个IP,分别为 10.10.10.100 和 192.168.0.100 , 后端RS的IP为172.16.0.100,这台RS上有一个文件目录为 video , 我访问 10.10.10.100/video 页面正常返回,可是访问 192.168.0.100/video 却是 403 的错误,这基本上可以排除前面提到的两个原因,经过排查nginx配置文件,发现在配置server_name 时,10.10.10.100 有配置,但是 192.168.0.100 却没有,看来问题就是在这里,经过重新配置,页面正常返回


我用第一种就搞定了





其中,test是可以访问的,api不可访问,可以看到,api少了对于其它用户(nginx)的读权限,