Nginx는 HTTP 서버로서 다음과 같은 기본 기능을 갖습니다: # )정적 파일 처리, 인덱스 파일 및 자동 인덱싱, 열린 파일 설명자 버퍼링.
캐시 없는 역방향 프록시 가속, 간단한 로드 밸런싱 및 내결함성.
FastCGI, 간단한 로드 밸런싱 및 내결함성.
모듈형 구조. gzipping, 바이트 범위, 청크 응답 및 SSI 필터와 같은 필터를 포함합니다. 단일 페이지에 있는 여러 SSI가 FastCGI 또는 다른 프록시 서버에서 처리되는 경우 이 처리는 서로 기다리지 않고 병렬로 실행될 수 있습니다.
SSL 및 TLSSNI를 지원합니다.
Nginx는 성능 최적화를 위해 특별히 개발되었으며 성능이 가장 중요한 고려 사항이며 구현 시 효율성에 큰 관심을 기울입니다.
커널 폴링 모델을 지원하며 높은 로드를 견딜 수 있다는 보고에 따르면 최대 50,000개의 동시 연결을 지원할 수 있습니다.Nginx는 안정성이 높습니다. 다른 HTTP 서버에 액세스 피크가 발생하거나 누군가 악의적으로 느린 연결을 시작하면 서버의 물리적 메모리가 고갈되고 잦은 스와핑 및 응답 손실이 발생할 가능성이 높으며 서버는 다시 시작할 수만 있습니다.
예를 들어 Apache가 200개 이상의 프로세스에 도달하면 웹 응답 속도는 분명히 매우 느려집니다. Nginx는 단계별 리소스 할당 기술을 채택하여 CPU 및 메모리 사용량을 매우 낮춥니다. Nginx는 10,000개의 비활성 연결을 유지한다고 공식적으로 명시하고 있습니다. 메모리는 2.5M만 차지하므로 DOS와 같은 공격은 기본적으로 Nginx에 쓸모가 없습니다. 안정성 측면에서는 Nginx가 lighthttpd보다 낫습니다. Nginx는 핫 배포를 지원합니다. 특히 시작하기가 쉽고 몇 달 동안 실행하더라도 다시 시작할 필요 없이 거의 연중무휴로 실행할 수 있습니다. 서비스를 중단하지 않고 소프트웨어 버전을 업그레이드할 수도 있습니다. Nginx는 SMP의 장점을 최대한 활용하고 디스크 I/O에서 작업자 프로세스의 차단 지연을 줄일 수 있는 마스터-슬레이브 모델을 채택합니다. select()/poll() 호출을 사용할 때 프로세스당 연결 수를 제한할 수도 있습니다. Nginx 코드 품질이 매우 높고, 코드가 매우 표준화되었으며, 기술이 성숙하고, 모듈 확장도 쉽습니다. 특히 언급할만한 가치가 있는 것은 강력한 업스트림 및 필터 체인입니다. 업스트림은 역방향 프록시 및 다른 서버와의 통신과 같은 모듈 작성을 위한 좋은 기반을 마련합니다. 필터 체인의 가장 멋진 부분은 각 필터가 이전 필터의 실행이 완료될 때까지 기다릴 필요가 없다는 것입니다. 이전 필터의 출력을 현재 필터의 입력으로 사용할 수 있으며 이는 Unix 파이프라인과 약간 유사합니다.이는 모듈이 백엔드 서버에서 전송된 요청 압축을 시작할 수 있고, 모듈이 백엔드 서버로부터 전체 요청을 수신하기 전에 압축 스트림을 클라이언트로 리디렉션할 수 있음을 의미합니다.
Nginx는 sendfile(Linux2.2+), accept-filter(FreeBSD4.1+), TCP_DEFER_ACCEPT(Linux 2.4+) 지원과 같은 OS에서 제공하는 일부 최신 기능을 채택합니다. , 이렇게 하면 성능이 크게 향상됩니다.
물론, Nginx는 아직 매우 어리고 다소 문제가 있습니다. 예를 들어 Nginx는 지난 몇 년 동안 비교적 적은 문서가 있었지만 현재 문서는 다음과 같습니다. 비교적 포괄적이며 대부분의 정보가 영어와 중국어로 되어 있습니다. 또한 많은 정보가 있으며, 검색할 수 있는 전문 서적과 정보도 있습니다. Nginx 작성자와 커뮤니티는 이를 개선하기 위해 끊임없이 노력하고 있습니다. 우리는 Nginx가 계속해서 경량 HTTP 서버 시장을 높은 성장률로 공유하고 더 나은 미래를 가질 것이라고 믿을 이유가 있습니다.위 내용은 HTTP 서버로서의 Ngin의 특징 및 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!