IT 이론

Apache와 NginX를 비교 ( 아파치 vs 엔진엑스)

청소도구함 2021. 11. 17.
728x90
300x250

아직까지 한번도 Apache라던지 NginX등 웹 서버 소프트웨어를 사용해본적이 없기에 개인 프로젝트를 진행하면서

이 두가지의 소프트웨어가 제일 인기가 많았고 어떤 것에 차이가 있고 각각의 장단점이 무엇인지 궁금하였습니다.

 

먼저 사용량을 보기위해 구글 트렌스에서 단순하게 Apache와 NginX의 검색량을 찾아봤습니다.

아래 그림에선 파란색 = Apache, 빨간색 = NginX입니다.

 

전 세계로 봤을때는 아직까지 Apache의 점유율이 되게 높다고 생각되지만 국내로 봤을 경우에는 점점더 Nginx가 빠르게 쫓아오는듯한 그래프를 볼 수 있었습니다.

2018, 2019년만 보아도 국내에서의 Apache와 NginX의 점유율은 상당히 격차가 컸었는데 지금에서는 격차가 많이 좁혀졌다는것을 알 수 있습니다.

 

그렇다면 Apache와 NginX의 차이점들이 뭐길래 이렇게 경쟁상대가 되는지 궁금했습니다.

 

Apache는 스레드/ 프로세스 기반 구조의 웹서버입니다.

- 클라이언트의 요청 하나당 스레드 하나가 처리하는 구조이기에 사용자드이 많아지면 그만큼 스레드를 생성해야하고

메모리와 CPU의 낭비가 심합니다.

-> 요청이 많아질수록 CPU와 메모리 사용의 증가로 성능이 저하될 수 있다.

 

NginX는 프로그램의 흐름이 이벤트에 의해 결정되는 Event Driven 방식의 웹서버입니다.

- 여러개의 커넥션을 모두 Event-Handler를 통해 비동식 방식으로 처리해 먼저 처리되는 것부터 로직이 진행됩니다. 그렇기에 스레드를 많이 사용하지않아 Context Switching비용이 적고 CPU소모도 적습니다.

-> 적은 수의 스레드로 일을 처리하며 스레드당 할당되는 메모리도 적게 사용된다.

 

하지만 아직까지도 많은 사람들이 Apache를 사용하고 있는데 그 이유가 무엇인지 찾아봤습니다.

NginX가 Apache에 비해 가벼움과 높은 성능을 목표로 만들어진 웹서버이지만 Apache는 모듈이 다양하며 모듈을 직접 적재가 가능하고 안정성, 확장성, 호환성에 우세합니다. 아무래도 많은 사람들이 사용해왔던 소프트웨어이기에 이러한 점에서 우수한것은 당연하다고 생각합니다.

 

어떠한 소프트웨어가 더 좋은지와 같은 비교는 할 수 없겠지만 비교적 가벼운 소프트웨어가 필요하는 경우에는 NginX를 많이 사용하는 추세인 것 같습니다. 

 

저도 앞으로 있을 프로젝트에서 어떤 것을 사용할지 조금 더 고민해보면서 진행하도록 하겠습니다.

728x90
300x250

'IT 이론' 카테고리의 다른 글

DevOps란?  (0) 2022.03.05
URI와 URL의 차이  (0) 2022.01.27
유용한 블로그 글, 포스트 모음  (0) 2021.12.10
RDBMS와 NoSQL의 비교  (0) 2021.11.18
API란? REST API란?  (0) 2021.07.18

댓글