回覆列表
  • 1 # 科學史話

    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或者自定義首頁檔案。

  • 中秋節和大豐收的關聯?
  • 你喜歡的明星最吸引你的是什麼?