ngx_http_create_요청 함수 해석

1963 단어 nginx
ngx_http_request_t 는 중요 한 구조 체 로 http 요청 마다 자신의 ngx 가 있 습 니 다.http_request_t 구조, ngxhttp_create_request 함수 가 ngx 를 초기 화 했 습 니 다.http_request_t 구조.주요 코드 와 해석 은 다음 과 같다.
ngx_connection_t 구조의 requests 필드 는 연결 처리 요청 개 수 를 대표 합 니 다. 긴 연결 모드 에서 하나의 연결 이 여러 개의 요청 을 처리 할 수 있 습 니 다.프로필 에 지정 한 logformat 에 $connection 추가requests 필드 는 이 변수 에서 얻 은 결과 입 니 다.
c->requests++;

ngx_http_request_t 구조 에서 main 변 수 는 하위 요청 을 파생 시 켰 을 때 하위 요청 은 자신의 하위 요청 이 있 을 수 있 지만 아무리 파생 되 더 라 도 그들의 main 변 수 는 항렬 이 가장 높 은 요청 입 니 다.
r->main = r;

count 변 수 는 요청 이 다른 요청 을 파생 시 킬 때 하위 요청, 내부 재 설정, upstream 등 을 포함 합 니 다.요청 이 파생 될 때마다 count 값 은 1 을 추가 합 니 다.
r->count = 1;

us_tries 변 수 는 upstream 과정 을 거 쳐 야 할 때 작 동 합 니 다.upstream 블록 에 n 개의 host 가 설정 되 어 있다 고 가정 합 니 다. 첫 번 째 host 가 연결 되 지 않 으 면 ngx 를 실행 합 니 다.http_upstream_next 함수, 즉 다음 host 에 연결 하려 고 시도 합 니 다.us_tries 변 수 는 매번 하 나 를 추가 하여 설정 파일 에 설 정 된 횟수 제한 과 비교 합 니 다.
r->us_tries = 1;

요청 시작 시간, 만약 logformat 에서 지정 한 인쇄 $requesttime, 요청 이 끝 난 후에 시간 을 기록 합 니 다. 두 시간의 차 이 는 $request 입 니 다.time 의 값.
if (clcf->request_time_cache) {
    tp = ngx_timeofday();
    r->start_sec = tp->sec;
    r->start_msec = tp->msec;
    r->start_usec = tp->usec;
} else {
    ngx_gettimeofday(&tv);
    r->start_sec = tv.tv_sec;
    r->start_msec = tv.tv_usec / 1000;
    r->start_usec = tv.tv_usec % 1000;
}

uri_changes 변 수 는 uri 가 변화 할 때 내부 방향 변경, rewrite 를 포함 합 니 다.기본 값 은 11 로 초기 화 되 며, 매번 변화 가 발생 할 때마다 1, 즉 최대 10 회 까지 줄 어 들 며, 무한 한 방향 전환 이나 무한 한 rewrite 사 순환 을 방지 합 니 다.
r->uri_changes = NGX_HTTP_MAX_URI_CHANGES + 1;

출산 을 요청 할 수 있 지만 파생 을 요청 하 는 하위 요청 의 개 수 는 제한 되 어 있 으 며, 기본 값 은 200 개 입 니 다.키 요청 을 새로 생 성 할 때마다 하 나 를 추가 하고, 키 요청 이 끝 날 때마다 하 나 를 줄 입 니 다.
r->subrequests = NGX_HTTP_MAX_SUBREQUESTS + 1;

좋은 웹페이지 즐겨찾기