들어가며
웹 서버하면 가장 많이 사용되고 있는 두 서버가 있다.
Apache와 Nginx이다. 오늘은 이 둘의 차이점과 장단점을 다뤄보려고 한다.
본론
Apache의 주요 특징
- 스레드 / 프로세스 기반
- 클라이언트 요청 하나당 스레드 하나가 대응하는 구조.
- 요청이 많을수록 메모리 및 CPU 낭비가 심함.
- 동적 컨텐츠를 직접 처리 가능
- 정적 컨텐츠: 변하지 않은 컨텐츠, 모든 사용자에 동일한 데이터를 출력.
- 동적 컨텐츠: 사용자의 요청에 따라 변하는 컨텐츠, 사용자 별로 다름.
Nginx의 주요 특징
- Event-Driven 처리 기반
- 한 개 또는 고정된 프로세스만 생성하고 이벤트 핸들러가 비동기 방식으로 대응
- 적은 양의 스레드만 사용해 메모리 및 CPU 소모가 적음.
분야별 비교
-
성능
: 아키텍처 구조상 Nginx가 효율적이고 빠름.
-
컨텐츠 처리
Apache | Nginx |
---|
정적, 동적 컨텐츠 모두 처리 가능 | 정적 컨텐츠만 가능, 동적 컨텐츠 처리시 별도의 모듈 필요 |
-
OS 지원
Apache | Nginx |
---|
Linux 및 BSD를 포함한 모든 Unix 계열 OS 지원 | 거의 모든 Unix 계열 OS 지원 |
Windows 모두 지원 | Windows는 부분적으로 지원 |