造成 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)的讀權限,