Nginx는 각 사용자 요청을 처리할 때 구성 파일의 순서가 아닌 여러 단계에 따라 순차적으로 처리합니다.
Nginx 요청 처리 과정은 11단계로 구분됩니다. 실행 순서는
post-read, server-rewrite, find-config, rewrite, post-rewrite, preaccess, access입니다. , 사후 액세스, 시험 파일, 콘텐츠, 로그.
- 읽기 후:
요청 콘텐츠 읽기 단계
Nginx는 요청 헤더를 읽고 구문 분석한 후 즉시 실행을 시작합니다
예를 들어, ngx_realip 모듈은 읽기 후 단계에 핸들러를 등록합니다. 그 기능은 Nginx가 현재 요청의 소스 주소가 지정된 요청 헤더의 값이라고 생각하도록 하는 것입니다.
- 서버 재작성
서버 요청 주소 재작성 단계
ngx_rewrite 모듈의 설정 구성 명령이 서버 구성 블록에 직접 작성되면 기본적으로 서버 재작성 단계
- find-config
에서 실행됩니다.
구성 조회 단계
이 단계에서는 Nginx 모듈 등록 핸들러를 지원하지 않습니다. 대신 Nginx 코어는 현재 요청과 위치 구성 블록 간의 일치를 완료합니다.
- 다시 작성
위치요청 주소 재작성 단계
ngx_rewrite 모듈의 지시문이 위치 블록에서 사용되면 이 다시 쓰기 단계에서 실행됩니다.
또한 ngx_set_misc(set md5, encode_base64 등) 모듈의 명령어와 ngx_lua 모듈의 set_by_lua 명령어 및 rewrite_by_lua 명령어도 이 단계에 있습니다.
- 재작성 후
주소 재작성 요청 제출 단계
재작성 단계에 그러한 요구 사항이 있는 경우 Nginx 코어는 재작성 단계에 필요한 "내부 점프" 작업을 완료합니다.
- 사전 액세스
접근권한 확인 준비단계
이 단계에서 표준 모듈 ngx_limit_req 및 ngx_limit_zone이 실행됩니다. 전자는 요청의 액세스 빈도를 제어할 수 있고 후자는 액세스 동시성을 제한할 수 있습니다.
- 액세스
접근권한 확인 단계
이 단계에서는 표준 모듈 ngx_access, 타사 모듈 ngx_auth_request 및 타사 모듈 ngx_lua의 access_by_lua 지시문이 실행됩니다.
구성 지침은 주로 사용자의 접근 권한 확인, 사용자의 원본 IP 주소가 적법한지 확인
- 접속 후
등의 접근 제어 작업을 수행하는 데 사용됩니다.
접근권한 확인 제출 단계
이는 표준 ngx_http_core 모듈에서 제공하는 구성 명령의 충족 기능을 구현하기 위해 액세스 단계와 협력하는 데 주로 사용됩니다.
모두를 만족시키다(관계)
모든(또는 관계) 만족
- try-files
구성 항목 try_files 처리 단계
표준 구성 지시문 try_files
의 기능을 구현하는 데 특별히 사용됩니다.
첫 번째 N-1 매개변수에 해당하는 파일 시스템 개체가 존재하지 않는 경우 try-files 단계는 마지막 매개변수(예: N번째 매개변수)에 지정된 URI로 즉시 "내부 점프"를 시작합니다.
- 내용
콘텐츠 생성 단계
Nginx의 콘텐츠 단계는 모든 요청 처리 단계 중에서 가장 중요합니다. 이 단계에서 실행되는 구성 지침은 일반적으로 "콘텐츠" 생성을 담당하기 때문입니다.
그리고 HTTP 응답 미션을 출력합니다.
- 로그
로그 모듈 처리 단계
로그 기록
').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
위 내용은 관련 내용을 포함하여 Nginx와 Lua의 실행 순서를 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.