nginx上出現403應該怎么解決

遇到的問題表現出來就是如題所述,因此作為題目。

我們知道,前端有很多方便的構建和打包工具,如webpack等,通常我們會把前端文件打包到dist目錄下,部署到服務器上,如nginx等。

這次遇到的問題是我下載了別人的一個代碼壓縮包,是一個vue.js+webpack的項目,構建好后上傳服務器,可以保證的是服務器上的nginx配置完全正確,但是在瀏覽器上怎么訪問都是403 forbidden。

仔細觀察項目結構與文件權限,發現項目下所有文件都是755的權限,所有文件夾都是700的權限,構建出來的文件也同樣繼承了這樣的權限,導致nginx無法訪問文件。詳細原理請參考linux文件權限和nginx文檔。
nginx上出現403應該怎么解決
(如圖左為正常創建的文件權限,右為異常權限)

這里也有一個鏈接描述了這個問題:403 Forbidden Error and How to Fix it | Nginx Tips

下面我們需要修復文件權限,使得所有文件是644權限,而所有文件夾是755權限。
一個一個設置太麻煩了,可以使用find命令加上文件類型判斷,來進行批量操作。

#?更改文件夾權限find?.?-type?d?-exec?chmod?755?{}?;#?更改普通文件權限find?.?-type?f?-exec?chmod?644?{}?;

find命令的用法請參考man手冊。

這樣,我們再次在瀏覽器訪問服務端地址,就可以正常訪問了。

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享