Nginx 서버 에서 403 forbidden 의 오 류 를 어떻게 해결 합 니까?

2329 단어 nginx
nginx 의 403 Forbidden errors 는 자원 파일 을 요청 하고 있 지만 nginx 는 볼 수 없습니다.403 Forbidden 은 HTTP 상태 코드 일 뿐 404, 200 처럼 기술적 인 오류 가 아니다.어떤 장면 이 403 상태 코드 의 장면 으로 돌아 가 야 합 니까?1. 사 이 트 는 특정한 사용자 가 모든 내용 을 방문 하 는 것 을 금지한다. 예 를 들 어 사이트 가 특정한 ip 방문 을 차단 하 는 것 이다.2. 디 렉 터 리 탐색 이 금 지 된 디 렉 터 리 에 접근 합 니 다. 예: autoindex off 를 설정 한 후 디 렉 터 리 에 접근 합 니 다.3. 사용자 가 내부 네트워크 에 만 접근 할 수 있 는 파일 에 접근 합 니 다.이상 몇 가지 흔히 볼 수 있 는 403 Forbidden 의 장면 으로 돌아 가 야 합 니 다.서버 측의 오류 설정 으로 인해 nginx 가 403 으로 돌아 가 기 를 원 하지 않 을 때 403 Forbidden 으로 돌아 갑 니 다.1. 권한 설정 이 올 바 르 지 않 습 니 다. 이것 은 nginx 가 403 forbidden 이 나타 나 는 가장 흔 한 원인 입 니 다.파일 이 올 바 르 게 실 행 될 수 있 도록 nginx 는 파일 의 읽 기 권한 도 필요 하고 모든 부모 디 렉 터 리 의 실행 가능 한 권한 도 필요 합 니 다.예 를 들 어 / usr / local / nginx / html / image. jpg 에 접근 할 때 nginx 는 image. jpg 파일 의 읽 을 수 있 는 권한 도 필요 하고 /, / usr, / usr / local, / usr / local / nginx, / usr / local / nginx / html 의 실행 권한 도 필요 합 니 다.해결 방법: 모든 부모 디 렉 터 리 를 755 권한 으로 설정 하고 파일 을 644 권한 으로 설정 하면 권한 이 올 바 르 지 않 음 을 피 할 수 있 습 니 다.2. 디 렉 터 리 인덱스 설정 오류 (index 명령 설정) 사이트 루트 디 렉 터 리 는 index 명령 설정 파일 을 포함 하지 않 습 니 다.예 를 들 어 PHP 를 실행 하 는 사 이 트 는 보통 index index. html index. htm index. php 를 이렇게 설정 합 니 다.이 사 이 트 를 방문 할 때 nginx 는 index. html, index. htm, index. php 의 선후 순서에 따라 루트 디 렉 터 리 에서 파일 을 찾 습 니 다.이 세 파일 이 모두 존재 하지 않 는 다 면 nginx 는 403 Forbidden 으로 돌아 갑 니 다.index 에서 index. php 가 정의 되 지 않 으 면 nginx 는 index. php 가 존재 하 는 지 확인 하지 않 고 403 Forbidden 으로 돌아 갑 니 다.마찬가지 로 jsp 를 실행 할 때 py 에 도 index. jsp, index. py 를 디 렉 터 리 색인 명령 index 에 추가 해 야 합 니 다.해결 방법: index 명령 에 첫 페이지 파일 을 추가 합 니 다. 흔히 볼 수 있 는 것 은 index. php, index. jsp, index. jsp 또는 홈 페이지 파일 을 사용자 정의 합 니 다.
예:
http://www.edusoho.com/product/system
server
{
        listen       80;
        server_name edusoho.linux.net;
        index app.php index.html index.htm index.php;
        root  /var/data/www/nginx/edusoho/web/;
        access_log  access.log  main;
        error_log /var/data/www/log/edusoho_error.log;
        proxy_ignore_client_abort  on;
        location ~ \.php$ {
          fastcgi_pass 127.0.0.1:9000;
          fastcgi_index  app.php;
          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
          include        fastcgi_params;
        }

        if (!-e $request_filename)
        {
                rewrite ^/(.*)$ /app.php?$1 last;
        }
}

좋은 웹페이지 즐겨찾기