結論
1,在非root賬戶下啟動時,nignx的master和worker程序的使用者都将是這個賬戶,
2,在root賬戶下啟動時 nignx的master程序是使用者是root,worker的使用者在conf已配置使用者的情況下,owner是配置的使用者,否則将是nobody,而且也可能導緻nginx的一些檔案的owner也是nobody。
問題探讨
A主機安裝NFS server,共享出來某些目錄給B主機使用
A主機中的配置
B主機安裝有NFS clinet 和nginx,還有其他應用
B主機挂載A主機提供的共享目錄
B主機安裝的nginx,配置檔案中關于使用者的配置是注釋狀态
程序使用者如下:
B主機上安裝有背景應用,通過B主機上的nginx可以正常通路,然後在背景上傳圖檔,實際存儲到A主機的共享目錄下,存儲的圖檔權限是:
但是通過nginx卻無法通路圖檔,提示:403 無權限
分析
使用root使用者啟動的nginx,但是nginx配置檔案中關于user 的配置是注釋狀态,這樣的情況正好對應開頭的結論2。master程序的使用者是root,但是worker程序使用者是nobody,再聯想到上傳的圖檔權限是"-rw-r-----",那肯定就無法通路圖檔了。
解決辦法也是根據結論2,修改nginx配置檔案中關于user的配置,修改成:<code>user root;</code>,這樣一來,master程序和worker程序的使用者都是root,這樣就能通路到圖檔了。