Nginx
Django、nginx、FastCGI - 通過 unix 套接字執行,權限問題
我已經將 nginx 配置為通過套接字執行 django 站點:
fastcgi_pass unix:/tmp/django.socket;
現在我(手動)執行
./manage.py runfcgi socket=/tmp/django.socket
http請求導致502 bad gateway,錯誤如下:
connect() 到 unix:/tmp/django.socket 連接到上游失敗(13:權限被拒絕),
我應該設置什麼權限才能輕鬆重啟 django fcgi?
Nginx 在某個使用者下執行(在 Debian 上通常是 www-data),您可以通過以下方式檢查它:
ps aux | grep nginx | grep worker
使用者將位於第一列。
該使用者必須有權訪問 /tmp/django.socket 才能進行讀寫。您可以通過在執行 nginx 的同一使用者下執行 django 來解決它(即 Debian 上的 www-data ),或者您必須將 nginx 使用者添加到與執行 django 的使用者相同的組中,並且套接字必須具有組的讀寫權限。
第一個解決方案更簡單(對我來說)更好。