1. 程式人生 > >django uwsgi nginx 部署出現 'Permission denied while connecting to upstream' (socket)

django uwsgi nginx 部署出現 'Permission denied while connecting to upstream' (socket)

參考https://stackoverflow.com/questions/35400393/nginxuwsgidjango-permission-denied-while-connecting-to-upstream-socket

將專案檔案轉移到了/home/下,解決了問題

 

如果您的nginx伺服器無法訪問uWSGI套接字,請嘗試執行以下步驟:

不要把你的socked放在系統中任何使用者的主目錄中,尤其是root!對於除該目錄的所有者和root之外的任何人,某些unix作業系統預設訪問主目錄。將nginx使用者新增到該使用者的私有組(對於大多數系統,每個使用者都有自己的主組)可以提供幫助,但它幾乎不會對root使用者起作用。

檢查你的nginx伺服器(或你正在使用的任何其他http伺服器)執行的使用者和組。有時候是www-data,有時是nginx,有時是其他東西。建立套接字時,請確保使用者名稱將匹配執行uWSGI伺服器的使用者名稱和uWSGI執行時的組名匹配組(或者您可以交換它)。

檢查你的套接字的許可權是否至少為660.沒有必要為任何人授予許可權,所以不要這樣做。

檢查您的nginx和uWSGI是否都有權訪問放置套接字的目錄以及所有父目錄。

套接字檔案的好地方是/ var / run目錄(對於某些系統,它是/ run或兩者)。它通常作為ramdisk(tmpfs)安裝,並且可以為系統中的任何人編寫,因此每個使用者都可以在這裡建立套接字(並訪問它們)。如果由於某種原因在您的系統中無法訪問,您也可以嘗試/ tmp目錄。

如果您還要從主目錄中直接從nginx提供靜態檔案,請考慮將nginx新增到您的個人組,以便它可以讀取您的主目錄和靜態檔案。