nginx 的 403 Forbidden errors 表示你在請求一個資原始檔但是nginx不允許你檢視。403 Forbidden 只是一個HTTP狀態碼,像404,200一樣不是技術上的錯誤。哪些場景需要返回403狀態碼的場景?
1.網站禁止特定的使用者訪問所有內容,例:網站遮蔽某個ip訪問。2.訪問禁止目錄瀏覽的目錄,例:設定autoindex off後訪問目錄。3.使用者訪問只能被內網訪問的檔案。
以上幾種常見的需要返回 403 Forbidden 的場景。
由於伺服器端的錯誤配置導致在不希望nginx返回403時返回403 Forbidden。
1.許可權配置不正確
這個是nginx出現403 forbidden最常見的原因。
為了保證檔案能正確執行,nginx既需要檔案的讀許可權,又需要檔案所有父目錄的可執行許可權。
例如,當訪問/usr/local/nginx/html/image.jpg時,nginx既需要image.jpg檔案的可讀許可權,也需要/, /usr,/usr/local,/usr/local/nginx,/usr/local/nginx/html的可以執行許可權。
解決辦法:設定所有父目錄為755許可權,設定檔案為644許可權可以避免許可權不正確。
2.目錄索引設定錯誤(index指令配置)
網站根目錄不包含index指令設定的檔案。
例如,執行PHP的網站,通常像這樣配置index
index index.html index.htm index.php;
當訪問該網站的時,nginx 會按照 index.html,index.htm ,index.php 的先後順序在根目錄中查詢檔案。如果這三個檔案都不存在,那麼nginx就會返回403 Forbidden。
如果index中不定義 index.php ,nginx直接返回403 Forbidden而不會去檢查index.php是否存在。
同樣對於如果執行jsp, py時也需要新增index.jsp,index.py到目錄索引指令index中。
解決辦法:新增首頁檔案到index指令,常見的是index.php,index.jsp,index.jsp或者自定義首頁檔案。
nginx 的 403 Forbidden errors 表示你在請求一個資原始檔但是nginx不允許你檢視。403 Forbidden 只是一個HTTP狀態碼,像404,200一樣不是技術上的錯誤。哪些場景需要返回403狀態碼的場景?
1.網站禁止特定的使用者訪問所有內容,例:網站遮蔽某個ip訪問。2.訪問禁止目錄瀏覽的目錄,例:設定autoindex off後訪問目錄。3.使用者訪問只能被內網訪問的檔案。
以上幾種常見的需要返回 403 Forbidden 的場景。
由於伺服器端的錯誤配置導致在不希望nginx返回403時返回403 Forbidden。
1.許可權配置不正確
這個是nginx出現403 forbidden最常見的原因。
為了保證檔案能正確執行,nginx既需要檔案的讀許可權,又需要檔案所有父目錄的可執行許可權。
例如,當訪問/usr/local/nginx/html/image.jpg時,nginx既需要image.jpg檔案的可讀許可權,也需要/, /usr,/usr/local,/usr/local/nginx,/usr/local/nginx/html的可以執行許可權。
解決辦法:設定所有父目錄為755許可權,設定檔案為644許可權可以避免許可權不正確。
2.目錄索引設定錯誤(index指令配置)
網站根目錄不包含index指令設定的檔案。
例如,執行PHP的網站,通常像這樣配置index
index index.html index.htm index.php;
當訪問該網站的時,nginx 會按照 index.html,index.htm ,index.php 的先後順序在根目錄中查詢檔案。如果這三個檔案都不存在,那麼nginx就會返回403 Forbidden。
如果index中不定義 index.php ,nginx直接返回403 Forbidden而不會去檢查index.php是否存在。
同樣對於如果執行jsp, py時也需要新增index.jsp,index.py到目錄索引指令index中。
解決辦法:新增首頁檔案到index指令,常見的是index.php,index.jsp,index.jsp或者自定義首頁檔案。