天天看點

nginx程序所屬使用者問題讨論

結論

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,這樣就能通路到圖檔了。

繼續閱讀