1. 程式人生 > >nginx “403 Forbidden” 錯誤的原因及解決辦法

nginx “403 Forbidden” 錯誤的原因及解決辦法

所有 html 網上 查找 lan href 原因 我沒 分配

————————————————————————————————首先

錯誤的原因及解決辦法

————————————————————————————————————————————————————

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

----------------------------------------------------然後、

給目錄或文件分配權限

————————————————————————————————————————————————————————————

Linux用戶權限 在Linux操作系統中,root的權限是最高的,相當於windows的administrator,擁有最高權限,能執行任何命令和操作,在Linux系統中,通過UID來區分用戶的權限級別,UID等於0,表示此用戶具有最高權限,也就是管理員,其他的用戶UID依次增加,通過/etc/passwd用戶密碼文件可以查看每個用戶的獨立UID Linux文件或目錄的用戶、組、其他人權限 Linux中每一個文件或者目錄都包含一個用戶權限、一個組的權限、其他人權限 如下所示: 標紅第一個root表示該文件所有者是root用戶,第二個root代表該文件的所屬組為root組,其他用戶這裏默認不標出。 [[email protected] /]#ls -l test.txt -rw-r--r-- 1 root root 91 may 7 20:21 test.txt 如果我們想改變某個文件的所有者和所屬的組,可以使用命令chown,參數R必須是大寫,否則會提示命令錯誤 chown -R test:test test.txt 每個Linux文件具有四種訪問權限:可讀(r)、可寫(w)、可執行(x)和無權限(-),無權限(-)不做討論。利用ls -l、ls -ld命令可以看到某個文件、目錄的權限,它以顯示數據的第一個字段為準。第一個字段由10個字符組成,如下: [[email protected] /]#ls -l test.txt -rw-r--r-- 1 root root 91 may 7 20:21 test.txt 第一位表示文件類型,-表示文件,d表示目錄;後面每三位為一組。 第一組:2-4位表示文件所有者的權限,即用戶user權限,簡稱u 在這裏表示root用戶有(rw-)的權限,可讀(r)與可寫(w)的權限,沒有可執行(x)權限 第二組:5-7位表示文件所有者所屬組成員的權限,group權限,簡稱g 這裏表示root組成員有(r--)的權限,只有可讀的權限。 第三組:8-10位表示所有者所屬組之外的用戶權限,other權限,簡稱o 這裏表示其他人有(r--)的權限,只有可讀的權限。 修改文件或文件夾的權限 [[email protected] /]chmod u+r test.txt //表示為root用戶添加讀的權限 [[email protected] /]chmod g-w test.txt //表示為root組去除寫的權限 [[email protected] /]chmod o+x test.txt //表示其他人添加可執行的權限 如果我們要為所有用戶添加所有rwx權限 [[email protected] /]chmod u=rwx,g=rwx,o=rwx test.txt 為了能更簡單快捷的使用和熟悉權限,rwx權限可以用數字來表示,分別表示為r(4)、w(2)、x(1) [[email protected] /]chmod 456 test.txt //表示root用戶對test具有r(4)的權限,root組隊test文件具有r(4)+x(1)的權限,其他人具有rw的權限 [[email protected] /]chmod 000 test.txt //表示去除所有權限 下面是我設置最高權限,不過要小心,不能盲目的跟著我設置 777 ,要好好看懂上面的解釋,具體情況具體設置 技術分享

技術分享

技術分享

最後就是艮更改phpmyadmin裏配置文件了,怎麽更改請在下一個博文中看,要是我沒有發不、布出來不要急,網上還有其他人的博文介紹,急需聯系我可以私聊,我的郵箱: [email protected]

nginx “403 Forbidden” 錯誤的原因及解決辦法