nginx 代理tomcat 訪問上傳后圖片顯示問題


nginx error log

2016/01/05 10:55:28 [crit] 15049#0: *143858 open() "nginx/proxy_temp/2/12/0000000122" failed (13: Permission denied) while reading upstream, client: 127.0.0.1, server: api.abc.com, request: "GET /image/690/1451876181382.jpg HTTP/1.0", upstream: "http://127.0.0.1/image/690/1451876181382.jpg", host: "api.abc.com"

原因是因為:

運行nginx 進程用戶nobody 沒有nginx安裝目錄/proxy_temp  文件的寫入權限‘

原來是 nginx 的工作進程對大文件做了緩存,這個緩存在 %nginx%/proxy_temp 目錄下,主進程在讀取緩存的時候由於權限問題而無法訪問。ps nginx 可以看出主進程用戶是 webapp(啟動 nginx 的用戶),工作者進程是 nobody 用戶(nginx 默認的工作者用戶就是 nobody,如果你沒有配 user 指令的話),proxy_temp 目錄所有者就是工作者進程的用戶(可以 ll proxy_temp 對此進行驗證)。
停止 nginx(nginx -s stop),chown -R 對 nginx 所有目錄權限重新設定成 webapp,然后在 nginx.conf 的 worker_processes 指令前添加指令
user webapp webgroup;

最后 webapp 用戶重啟 nginx 即可

############################

添加nginx 運行用戶的時,報錯;

[emerg]: getgrnam(“presmini”) failed in /opt/nginx/conf/nginx.conf:1

檢查nginx 目錄,是否已經更改了 屬組,和屬主  chown -R webapp:webgroup /usr/local/nginx/

原因沒有配置 nginx.conf 中user 的組,添加上user用戶 和 組 ,解決問題

如 webapp 用戶,webgroup 所屬組

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM