Nginx 403 forbidden (13: Permission denied) 의 오 류 를 해결 하 는 네 가지 방법

2587 단어 nginx
원본 링크:https://www.centos.bz/2018/12/%E8%A7%A3%E5%86%B3nginx%E5%87%BA%E7%8E%B0403-forbidden-13-permission-denied%E6%8A%A5%E9%94%99%E7%9A%84%E5%9B%9B%E7%A7%8D%E6%96%B9%E6%B3%95/
저 는 로 컬 가상 컴퓨터 에서 yum 을 통 해 nginx 를 설치 하고 모든 것 이 정상 적 이지 만 타 임 스 403 을 방문 합 니 다.
그래서 nginx 로 그 를 보 았 습 니 다. 경 로 는 / var / log / nginx / error. log 입 니 다.로 그 를 열 어 오류 보고 Permission denied 를 발 견 했 습 니 다. 자세 한 오 류 는 다음 과 같 습 니 다.
2018/11/28 11:39:40 [error] 41772#41772: *130 "/home/hc/dists/autoAweme/dist/index.html" is forbidden (13: Permission denied), client: 192.168.3.139, server: 192.168.3.139, request: "GET / HTTP/1.1", host: "192.168.3.139"

1. 시작 사용자 와 nginx 작업 사용자 가 일치 하지 않 아서 발생 합 니 다.
1. nginx 시작 사용자 보기
명령:
ps aux | grep "nginx: worker process" | awk  '{print $1}'
[root@localhost hc]# ps aux | grep "nginx: worker process" | awk  '{print $1}'
nginx
root

루트 로 시작 하 는 것 이 아니 라 nginx 를 발 견 했 습 니 다.
2. nginx. conf 의 user 를 시작 사용자 와 일치 하도록 변경 합 니 다.
nginx. conf 파일 에 있 는 user 에 대응 하 는 nginx 를 root 로 변경 하고 변경 한 후 다시 시작 합 니 다.
[root@localhost hc]# vim /etc/nginx/nginx.conf
[root@localhost hc]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost hc]# nginx -s reload

 
2. index. html 또는 index. php 파일 이 없 으 면 설정 파일 에서 index. html index. htm 줄 에서 지정 한 파일 입 니 다.
server {
listen 80;
server_name localhost;
index index.php index.html;
root / var/www;
}

/ var / www 아래 에 index. php, index. html 가 없 을 때 도 메 인 이름 을 직접 방문 하여 파일 을 찾 지 못 하면 403 forbidden 을 보고 합 니 다.
3. 권한 문제, nginx 가 웹 디 렉 터 리 의 조작 권한 이 없 으 면 403 오류 가 발생 할 수 있 습 니 다.
해결 방법: 웹 디 렉 터 리 의 읽 기와 쓰기 권한 을 수정 하거나 nginx 의 시작 사용 자 를 디 렉 터 리 의 소속 사용자 로 변경 하여 Nginx 를 다시 시작 하면 해결 할 수 있 습 니 다.
chmod -R 755 / var/www

4. SELinux 가 오픈 상태 (enabled) 로 설 정 된 이유
먼저 이 컴퓨터 의 SELinux 오픈 상 태 를 보십시오. 만약 SELinux 가 status 매개 변 수 는 enabled 즉 오픈 상태 입 니 다.
/usr/sbin/ sestatus -v

getenforce 명령 으로 검사 하기
어떻게 SELinux 를 닫 습 니까?
1. 임시 종료 (다시 시작 하지 않 아 도 됨)
setenforce  0

2. 영구 종료 (재 부팅 필요)
설정 파일 / etc / selinux / config 를 수정 하고 SELINUX = enforcing 을 SELINUX = disabled 로 변경 합 니 다.
vi /etc/selinux/config


#SELINUX=enforcing

SELINUX=disabled

재 부팅 이 적 용 됩 니 다.
reboot

좋은 웹페이지 즐겨찾기