NginX VS Apache
Apache 와 NginX 는 웹서버를 운영 할 수 있는 오픈 소스 서버 기술을 제공한다.
프로젝트를 진행할 시, 어느 것으로 사이트를 최대한 효율적으로 운영할 수 있는지 필요에 가장 적합한 서버 유형을 선택하는 것이 중요하다.
Nginx 장점
- 이벤트 중심 접근 방식으로 하나의 스레드 내에서 여러 요청을 처리하는 구조
- 비동기 Event-Driven 구조 : Event Handler에서 비동기 방식으로 먼저 처리되는 요청을 진행
- 코어 모듈이 Apache보다 적은 리소스로도 많은 트래픽을 효율적으로 처리 가능
- 제한된 하드웨어 리소스로 여러 클라이언트 요청을 동시에 효율적으로 처리
- 단일 스레드를 통해 여러 연결을 처리 할 수 있음
- 최소한의 리소스로 웹 서버의 구조를 개선하기 위해서 독립형 HTTP 서버로 배치 가능
Nginx 단점
- 동적 컨텐츠를 기본적으로 처리 할 수 없다.
- 이로인한 프로세스 속도 저하.
Apache 장점
- 프로세스 기반 접근 방식으로 하나의 스레드가 하나의 요청을 처리하는 구조
- 요청마다 스레드를 생성 및 할당해야해서 리소스를 많이 잡아먹음
- 웹 서버 내에서 동적 컨텐츠를 처리
- 모듈을 동적으로 로드 및 언로드( 더욱 더 유연하게 처리 )
- 처음부터 웹 서버로 설계되었음
Apache 단점
- 웹 트래픽이 많아지면 Apache가 여러 요청을 동시에 처리 할 수 없다는 점
- 클라이언트의 요청을 처리하기 위한 다중 스레드 접근 방식을 따르고 각 스레드는 한 번에 하나의 연결 만 처리 가능
결과적으로...
Apache와 Nginx는 뚜렷한 강점을 가지고 있다.
Apache는 다양한 동적 모듈을 로드하기위한 많은 문서와 더 나은 지원이 제공되는 반면 Nginx는 트래픽이 많은 웹 사이트를 위한 많은 정적 컨텐츠 및 미디어 스트림을 제공 할 수 있다.
우리는 Apache와 Nginx를 함께 사용하는 것을 고려해 볼 수 있다.
Apache에는 대규모 커뮤니티가 있어서 일반적인 문제를 탐색하는 데 도움이 되는 많은 지원이 있다. 반면, Nginx는 안정성과 속도가 향상된다.
두 서버를 함께 사용해도 되며, Apache 앞단에 Nginx를 프록시 서버로 활용 할 수 있다.