Timothy Shim 정보
Timothy Shim은 작가, 편집자 및 기술 괴짜입니다. 정보 기술 분야에서 경력을 쌓기 시작하면서 그는 빠르게 인쇄물을 발견하고 ComputerWorld, PC.com, Business Today 및 The Asian Banker를 포함한 국제, 지역 및 국내 언론 매체에서 근무했습니다. 그의 전문 기술은 소비자 관점뿐만 아니라 기업 관점에서 기술 분야에 자리 잡고 있습니다.
모두 Nginx에 및 아파치 풍부한 기능 세트와 고성능을 갖춘 성숙한 제품입니다. 공통 오픈 소스 출처를 공유하며 Windows 또는 Linux 서버에 배포할 수 있습니다.
그러나 몇 가지 주요 차이점으로 인해 하나를 선택할 수 있습니다.
예를 들어 Apache는 즉시 사용 가능한 다양한 기술과 모듈을 지원하는 포괄적인 솔루션입니다. 대조적으로 Nginx는 기능을 확장하기 위해 타사 모듈에 의존합니다.
어느 것을 보려면 웹 서버 귀하의 요구에 더 적합할 수 있으므로 이러한 옵션에 대해 더 자세히 살펴보겠습니다.
1995년에 만든 사람 로버트 맥쿨 원래 "Apache HTTP 서버 프로젝트"(따라서 이름)라고 불렸던 Apache는 수정하더라도 무료로 사용할 수 있는 강력한 상용 등급 서버를 만들기 위해 설계되었습니다. Unix에서 Windows에 이르기까지 다양한 운영 체제에서 실행할 수 있기 때문에 매우 빠르게 인기를 얻었습니다.
이러한 오랜 인기 덕분에 저는 Apache를 "원래 영웅" 웹 서버로 간주합니다. Apache Software Foundation의 후원 하에 있는 개방형 개발자 커뮤니티에서 강력하고 잘 문서화되어 지원됩니다.
Nginx("Engine X"로 발음)는 HTTP 및 역방향 프록시 서버, 메일 프록시 서버 및 모든 크기의 웹사이트 및 애플리케이션을 호스팅하는 데 사용되는 일반 TCP/UDP 프록시 서버입니다. 러시아 개발자에 의해 처음 공개되었습니다. 이고르 시소 에프. Nginx의 초기 목표는 Apache가 관리하기 어려웠던 C10K 문제를 해결하는 것이었습니다.
또한 읽기
Nginx와 Apache는 핵심 아키텍처에서 몇 가지 유사점을 공유합니다. 예를 들어, 둘 다 마스터-워커 프로세스를 사용하여 성능을 개선합니다. 비슷한 구성 파일도 있습니다. 그러나 아키텍처 스타일의 차이로 인해 광범위한 성능 변화가 발생합니다.
Nginx에는 로드 시 작지만 일정한 양의 메모리를 사용하는 리소스 친화적인 이벤트 중심 아키텍처가 있습니다. 이러한 특성으로 인해 트래픽 수준이 높거나 트래픽 스파이크가 간헐적으로 발생하는 웹 사이트를 호스팅하는 데 이상적입니다.
Apache의 프로세스 중심 아키텍처는 더 많은 메모리가 필요한 전용 스레드를 통해 각 연결을 처리합니다. 그러나 더 많은 CPU 코어와 RAM이 있는 시스템에서 과부하가 걸리면 더 잘 확장됩니다.
Nginx는 고성능과 낮은 리소스 소비로 유명합니다. 반면에 Apache는 특히 여러 서버 블록을 실행할 때 메모리 집약적일 수 있습니다. 둘 다 메모리를 사용하여 HTTP 요청을 처리하지만 Nginx는 더 가볍습니다.
Apache의 설계는 연결당 하나의 스레드를 생성하고 각 스레드가 특정 양의 RAM을 사용한다는 것을 의미했습니다. 트래픽이 증가하면 특히 메모리가 적은 서버에서 더 많은 RAM이 필요하므로 문제가 발생할 수 있습니다. Apache는 동일한 사용자의 경우에도 각 요청에 대해 새 프로세스를 생성합니다.
이에 비해 Nginx는 한 번에 여러 연결을 처리하기 위해 하나의 프로세스를 사용합니다.
이 두 웹 서버는 주로 다음과 함께 작동하기 때문에 PHP, 코드를 처리하는 방법은 상당한 성능 잠재력을 의미합니다. Nginx는 기본적으로 PHP를 직접 실행하지 않습니다. 대신 요청을 PHP-FPM(FastCGI 프로세스 관리자), 요청을 처리하고 응답을 Nginx로 다시 보내면 Nginx가 콘텐츠를 다시 클라이언트에 제공합니다.
Nginx는 다른 요청을 처리하기 위해 PHP-FPM의 응답을 기다리지 않기 때문에(정적 콘텐츠를 제공할 때 클라이언트의 응답을 기다리지 않는 것과 유사) Nginx는 Apache가 관리할 수 있는 것보다 더 많은 요청을 동시에 처리할 수 있습니다.
Apache는 mod_php라는 모듈을 사용하여 PHP 코드를 실행합니다. 이 모델에서 HTTP 요청이 들어올 때마다 Apache는 해당 요청을 처리하기 위해 새 프로세스 또는 스레드(구성 방법에 따라 다름)를 생성합니다. 이 프로세스는 해당 요청 내에서 모든 PHP 요청을 처리하는 역할도 합니다.
이 모델은 작동하지만 몇 가지 단점이 있습니다. 한 가지 예로, 모든 요청에 대해 새 프로세스를 생성하는 것은 특히 동시 요청이 많은 경우 시스템에서 집중적일 수 있습니다. 요청 내의 모든 PHP 요청에 대해 새로운 프로세스를 생성하는 것은 운영 체제가 각각에 대해 완전히 새로운 인터프리터를 생성해야 하기 때문에 훨씬 더 집중적입니다.
보시다시피, 이러한 웹 서버 거대 기업 사이에 확실한 승자는 없습니다. 주로 관리할 웹 서버가 무엇인지에 따라 다릅니다.
Apache 또는 Nginx를 실행할지 여부는 요구 사항과 실행 중인 하드웨어에 따라 다릅니다. PHP 웹 사이트를 제공하는 데 두 옵션 중 하나를 사용할 수 있습니다. 그러나 그 외에도 고려해야 할 사항이 많습니다.
간단한 웹 사이트가 있는 경우 웹 사이트 간에 차이를 느끼지 못할 수 있습니다. 그러나 사이트가 더 많은 트래픽을 얻고 성장한다면 각 서버가 부하를 받는 상태에서 어떻게 작동하고 확장되는지 알아야 합니다.