Nginx

/var/lib/nginx/client_body/0000000011 使用 node.js 失敗(13:權限被拒絕)

  • April 29, 2021

我將node.jsNginx 用作在 Slackware 14.1 上執行的 Web 伺服器。

我創建了一個上傳文件的頁面。在我的開發機器(Debian 之類)中它工作正常,但在生產中(Slackware 伺服器)我得到這個錯誤/var/log/nginx/error.log

2015/10/09 15:08:44 [crit] 1231#0: *5 open() "/var/lib/nginx/client_body/0000000003" failed (13: Permission denied), client: 10.0.0.22, server: localhost, request: "POST /home/perfil_usuario/upload HTTP/1.1", host: "aluno.fio.edu.br", referrer: "http://aluno.fio.edu.br/home/perfil_usuario/upload"

Nginx 返回一個500 Internal Server Error.

我搜尋並嘗試了許多文章的修復,但錯誤仍在繼續。

正如錯誤消息所說,這是一個權限問題。

這通常是由於 nginx 程序使用者(www-data例如)沒有對父目錄之一的讀取/執行訪問權限引起的。

檢查/var/lib/nginx/client_body/並確保每個目錄級別的權限都正確以解決問題。

就我而言,問題是 /var/lib/nginx 的所有權是錯誤的。nginx 寫入的所有其他目錄都歸 www-data 所有,而 ’nginx 目錄歸 root 所有。在這種情況下,最好的解決方案是更改目錄所有權以匹配 nginx 寫入的其他目錄的所有權。

引用自:https://serverfault.com/questions/727908