node.js에서 /var/lib/nginx/client_body/0000000011 실패(13: 권한 거부됨)

node.js에서 /var/lib/nginx/client_body/0000000011 실패(13: 권한 거부됨)

저는 node.jsSlackware 14.1에서 실행되는 웹 서버로 Nginx를 사용하고 있습니다.

파일을 업로드하는 페이지를 만들었습니다. 내 개발 컴퓨터(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.

여러 게시물의 수정 사항을 검색하고 시도했지만 오류가 계속 발생합니다.

답변1

오류 메시지에서 알 수 있듯이 이것은권한문제.

이는 일반적으로 nginx 프로세스 사용자( www-data예를 들어)가 상위 디렉터리 중 하나에 대한 읽기/실행 액세스 권한이 없기 때문에 발생합니다.

/var/lib/nginx/client_body/문제를 해결하려면 각 디렉터리 수준에서 권한이 올바른지 확인 하고 확인하세요.

답변2

제 경우에는 /var/lib/nginx의 소유권이 잘못되었다는 것이 문제였습니다. nginx가 쓰는 다른 모든 디렉토리는 www-data가 소유한 반면 'nginx 디렉토리는 루트가 소유했습니다. 이 경우 가장 좋은 해결책은 nginx가 쓰는 다른 디렉토리의 소유권과 일치하도록 디렉토리 소유권을 변경하는 것입니다.

답변3

제 경우에는 /var/lib/nginx의 소유권이 www-data:adm으로 설정되었고 권한은 770으로 설정되었습니다.

변화가 효과가 있었어

  1. chown 루트:루트 /var/lib/nginx/
  2. chmod 0755 /var/lib/nginx

또한 /var/lib/nginx/tmp가 달랐습니다. 포인트 1 및 포인트 2에 따라 소유권과 권한이 업데이트되었습니다.

/var/lib/nginx/tmp 내의 내용이 언급되었습니다.

drwx------. 2 www-data 루트 6 9월 29일 23:37 uwsgi

drwx------. 2 www-data 루트 6 9월 29일 23:37 scgi

drwx------. 2 www-data 루트 6 9월 29일 23:37 fastcgi

drwx------. 10 www-data 루트 78 10월 20일 12:17 프록시

drwx------. 2 www-data 루트 6 10월 20일 12:20 client_body

이러한 권한과 소유권을 설정한 후 nginx를 다시 시작하세요. 그리고 권한 거부 오류가 표시되지 않으며 Nginx가 500 내부 서버 오류 제공을 중단했으며 예상된 결과가 표시되었습니다. 감사해요

관련 정보