Nginx는 다중 프로세스 모델을 사용하여 마스터 프로세스와 다중 작업자 프로세스를 포함한 외부 서비스를 제공합니다. 마스터 프로세스는 Nginx 자체 및 기타 작업자 프로세스를 관리하는 역할을 담당합니다.
모든 실제 비즈니스 처리 로직은 작업자 프로세스에 있습니다. 작업자 프로세스에는 무한 루프를 실행하여 클라이언트로부터 받은 요청을 지속적으로 처리하고 Nginx 서비스 전체가 중지될 때까지 처리하는 기능이 있습니다. (추천 학습: nginx는 을 사용합니다)
작업자 프로세스에서 ngx_worker_process_cycle() 함수는 이 무한 루프에 대한 처리 함수입니다.
이 함수에서 요청의 간단한 처리 흐름은 다음과 같습니다.
운영 체제에서 제공하는 메커니즘(예: epoll , kqueue 등) 관련 이벤트가 생성됩니다.
이러한 이벤트를 수신하고 처리합니다. 데이터가 수신되면 상위 수준의 요청 개체가 생성됩니다.
요청의 헤더와 본문을 처리합니다.
응답을 생성하고 클라이언트에게 다시 보냅니다.
요청 처리를 완료합니다.
타이머 및 기타 이벤트를 다시 초기화합니다.
요청 처리 과정
Nginx의 요청 처리 과정을 모두가 더 잘 이해할 수 있도록 HTTP 요청을 예로 들어 자세히 설명합니다.
Nginx 내에서 HTTP 요청 처리에는 다음 단계가 포함됩니다.
HTTP 요청 초기화(클라이언트에서 데이터를 읽고 요청의 모든 정보가 포함된 HTTP 요청 개체 생성).
요청 헤더를 처리하는 중입니다.
요청 본문을 처리합니다.
이 요청과 관련된 핸들러(URL 또는 위치)가 있는 경우 이를 호출합니다.
처리를 위해 각 단계 핸들러를 차례로 호출합니다.
여기서 Phase Handler의 개념을 이해해야 합니다. 페이즈는 말 그대로 무대를 의미합니다. 따라서 단계 핸들러는 이해하기 쉽고 여러 처리 단계를 포함하는 핸들러입니다.
각 단계에는 여러 개의 핸들러가 있습니다. 처리가 특정 단계에 도달하면 해당 단계의 핸들러가 차례로 호출되어 HTTP 요청을 처리합니다.
일반적으로 단계 핸들러는 이 요청을 처리하고 일부 출력을 생성합니다. 일반적으로 단계 핸들러는 구성 파일에 정의된 위치와 연결됩니다.
단계 핸들러는 일반적으로 다음 작업을 수행합니다.
위치 구성 가져오기.
적절한 응답을 생성합니다.
응답 헤더를 보냅니다.
응답 본문을 보냅니다.
Nginx가 HTTP 요청의 헤더를 읽을 때 Nginx는 먼저 요청과 관련된 가상 호스트의 구성을 검색합니다. 이 가상 호스트의 구성이 발견되면 일반적으로 이 HTTP 요청은 다음 처리 단계(단계 핸들러)를 거칩니다.
NGX_HTTP_POST_READ_PHASE: 요청 콘텐츠 읽기 단계 #🎜🎜 #
NGX_HTTP_SERVER_REWRITE_PHASE: 서버 요청 주소 다시 쓰기 단계NGX_HTTP_FIND_CONFIG_PHASE: 구성 조회 단계:NGX_HTTP_REWRITE_PHASE: 위치 요청 주소 다시 쓰기 단계#🎜 🎜#NGX_HTTP_POST_REWRITE_PHASE : 주소 재작성 요청 제출 단계
NGX_HTTP_PREACESS_PHASE: 접근 권한 확인 준비 단계
NGX_HTTP_ACCESS_PHASE: 접근 권한 확인 단계
NGX_HTTP_POST_ACCESS_PHASE : 접근 권한 확인 제출 단계
NGX_HTTP_TRY_FILES_PHASE: 구성 항목 try_files 처리 단계
NGX_HTTP_CONTENT_PHASE: 콘텐츠 생성 단계
NGX_HTTP_LOG_PHASE: 로그 모듈 처리 단계#🎜 🎜#
콘텐츠 생성 단계에서 요청에 대한 올바른 응답을 생성하려면 Nginx는 처리를 위해 요청을 적절한 콘텐츠 핸들러에 전달해야 합니다. 이 요청에 해당하는 위치가 구성 파일에 콘텐츠 핸들러로 명시적으로 지정되어 있으면 Nginx는 위치를 일치시켜 해당 핸들러를 직접 찾고 이 콘텐츠 핸들러에 요청을 전달하여 처리할 수 있습니다. 이러한 구성 지시문에는 perl, flv, Proxy_pass, mp4 등이 포함됩니다.요청에 해당하는 위치에 직접 구성된 콘텐츠 핸들러가 없으면 Nginx는 순서대로 시도합니다.
위치가 random_index 구성이 켜져 있으면 무작위로 파일을 선택하여 클라이언트에 보냅니다.
어떤 위치에 index 지시문이 구성되어 있으면 index 지시문에 지정된 파일이 클라이언트로 전송됩니다. 위치가 자동 인덱스로 구성된 경우 요청 주소에 해당하는 서버 경로 아래의 파일 목록이 클라이언트로 전송됩니다. 이 요청에 해당하는 위치에 gzip_static on이 설정되어 있으면 해당 .gz 파일이 있는지 확인하세요. 그렇다면 이를 클라이언트에 보냅니다(클라이언트가 gzip을 지원하는 경우). 요청한 URI가 정적 파일에 해당하는 경우 정적 모듈은 정적 파일의 콘텐츠를 클라이언트에 보냅니다. 콘텐츠 생성 단계가 완료된 후 생성된 출력은 처리를 위해 필터 모듈로 전달됩니다.필터 모듈은 위치와도 관련이 있습니다. 모든 피팅 모듈은 체인으로 구성됩니다. 출력은 필터 모듈의 반환 값이 처리가 완료되었음을 나타낼 때까지 모든 필터를 순차적으로 통과합니다.
다음과 같은 몇 가지 일반적인 필터 모듈이 있습니다.
서버 측 포함.
XSLT 필터링.
이미지 크기 조정 등.
gzip 압축.
모든 필터 중에는 주의가 필요한 필터 모듈이 여러 개 있습니다. 호출 순서에 따라 지침은 다음과 같습니다.
write: 클라이언트에 출력을 씁니다. 실제로 연결에 해당하는 소켓에 기록됩니다.
postpone: 이 필터는 하위 요청, 즉 하위 요청을 담당합니다.
복사: 복사해야 할 일부 buf(파일 또는 메모리)를 복사한 다음 처리를 위해 나머지 바디 필터에 넘겨줍니다.
위 내용은 Nginx를 사용하여 요청을 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Nginx는 높은 동시 요청을 처리하는 데 적합한 반면 Apache는 복잡한 구성 및 기능 확장이 필요한 시나리오에 적합합니다. 1.NGINX는 이벤트 중심의 비 블로킹 아키텍처를 채택하며, 대결 환경에 적합합니다. 2. Apache는 프로세스 또는 스레드 모델을 채택하여 복잡한 구성 요구에 적합한 풍부한 모듈 생태계를 제공합니다.

Nginx는 웹 사이트 성능, 보안 및 확장 성을 향상시키는 데 사용될 수 있습니다. 1) 리버스 프록시 및로드 밸런서로서 Nginx는 백엔드 서비스를 최적화하고 트래픽을 공유 할 수 있습니다. 2) 이벤트 중심 및 비동기 아키텍처를 통해 Nginx는 높은 동시 연결을 효율적으로 처리합니다. 3) 구성 파일을 사용하면 정적 파일 서비스 및로드 밸런싱과 같은 규칙을 유연하게 정의 할 수 있습니다. 4) 최적화 제안에는 GZIP 압축 활성화, 캐시 사용 및 작업자 프로세스 조정이 포함됩니다.

NginxUnit은 여러 프로그래밍 언어를 지원하며 모듈 식 디자인을 통해 구현됩니다. 1. 언어 모듈로드 : 구성 파일에 따라 해당 모듈을로드합니다. 2. 응용 프로그램 시작 : 호출 언어가 실행될 때 응용 프로그램 코드를 실행합니다. 3. 요청 처리 : 응용 프로그램 인스턴스로 요청을 전달하십시오. 4. 응답 반환 : 처리 된 응답을 클라이언트에 반환합니다.

Nginx와 Apache는 고유 한 장점과 단점이 있으며 다른 시나리오에 적합합니다. 1.NGINX는 높은 동시성 및 낮은 자원 소비 시나리오에 적합합니다. 2. Apache는 복잡한 구성 및 풍부한 모듈이 필요한 시나리오에 적합합니다. 핵심 기능, 성능 차이 및 모범 사례를 비교하면 요구에 가장 적합한 서버 소프트웨어를 선택할 수 있습니다.

질문 : nginx를 시작하는 방법? 답변 : nginx 스타트 업 설치 nginx verification nginx is nginx 시작 다른 시작 옵션을 자동으로 시작합니다.

nginx가 시작되었는지 확인하는 방법 : 1. 명령 줄을 사용하십시오 : SystemCTL 상태 nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. 포트 80이 열려 있는지 확인하십시오. 3. 시스템 로그에서 nginx 시작 메시지를 확인하십시오. 4. Nagios, Zabbix 및 Icinga와 같은 타사 도구를 사용하십시오.

Nginx 서비스를 종료하려면 다음 단계를 따르려면 다음 단계를 결정합니다. Red Hat/Centos (SystemCTL 상태 NGINX) 또는 Debian/Ubuntu (서비스 NGINX 상태) 서비스 중지 : Red Hat/Centos (SystemCTL STOP NGINX) 또는 DEBIAN/UBUNTU (서비스 NGINX STOP) DIA AUTAL STARTUP (옵션) : RED HAT/CENTOS (SystemCTLED) 또는 DEBIAN/UBUNT (SystemCTLED). (Syst

Windows에서 Nginx를 구성하는 방법은 무엇입니까? nginx를 설치하고 가상 호스트 구성을 만듭니다. 기본 구성 파일을 수정하고 가상 호스트 구성을 포함하십시오. 시작 또는 새로 고침 Nginx. 구성을 테스트하고 웹 사이트를보십시오. SSL을 선택적으로 활성화하고 SSL 인증서를 구성하십시오. 포트 80 및 443 트래픽을 허용하도록 방화벽을 선택적으로 설정하십시오.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
