有時候當Nginx讀取本地目錄時會收到403錯誤,權限問題。
先來了解一下Nginx的用戶管理,Nginx在以Linux service腳本啟動時,通過start-stop-domain啟動,會以root權限運行daemon進程。
然后daemon進程讀取/etc/nginx/nginx.conf文件中的user配置選項,默認這里的user=nginx
也就是用nginx用戶啟動worker process。403錯誤就是因為nginx用戶沒有權限訪問我當前開發用的用戶目錄,/home/dean/work/resources。
解決方法是將user=nginx替換成root,然后重新啟動nginx,可以了。
其他方法也試過,比如給/home/dean/work/resources目錄設置777權限,比如將nginx用戶加入root組,都不行。
所以當開發的時候,就用user=root配置吧。至於產品環境下,resouces目錄完全可以放到nginx用戶目錄下,所以問題不大。
