마짱짱의 지식창고
Apache vs NginX 본문
Apache 와 NginX 는 가장 많이쓰이는 오픈소스 웹 서버이다.
Apache
- 스레드 / 프로세스 기반 구조 : 클라이언트 요청 하나당 스레드 하나가 처리하는 구조
(요청이 많을 수록 CPU와 메모리 사용지 증가하기 떄문에 성능이 저하 될 수 있다)
- MPM(Multi Processing Module) 아키텍쳐를 기반으로 클라이언트 요청 처리방법을 처리하는 기술 기반
(MPM 다중처리모듈)
PreFork MPM
- 자식 프로세스를 미리 준비해 두는 방식으로 최대 1024개까지 가능하다
- 하나의 자식 프로세스당 1개의 스레드 연결
- 스레드간 메모리 공유를 하지 않아 독립적으로 사용으로 안정적이나 메모리를 많이 사용한다.
Worker MPM
- 프로세스당 여러개의 스레드 연결
- 스레드간 메모리를 공유하여 메모리 사용량이 적다.
- 통신량이 많은 서버에 적합하다.
* Apache 2.4 이후로 Event MPM 모듈이 추가되었다.
아래 설명할 NginX의 Event-Driven 기능을 생각하면 된다.
- Apache의 문제점
접속할때마다 프로세스 또는 스레드를 생성하는 구조이다.
동시에 접속요칭이 많을시 그만큼의 프로세스나 스레드 생성비용이 들 것이고, 대용량 요청을 처리할 수 있는 웹서버로서
한계가 들어난다.
NginX
- Event-Driven 처리 기반 구조
한개 또는 고정된 프로세스만 생성하고, 그 프로시스 내부에서 비동기 방식으로 효율적으로 작업을 처리한다.
따라서 동시접속 요청이 많아도 프로세스 또는 스레드 생성비용이 생성되지 않는다.
결론 : Apache와 Nginx는 서로 누가 더 좋고 나쁘다 라고 얘기할 수 없다.
상황에 맞게 사용하는 것이 좋다.
---
참고
https://youngmind.tistory.com/entry/Apache-vs-Nginx ,
https://cornswrold.tistory.com/429,
https://cntechsystems.tistory.com/24
https://www.plesk.com/blog/various/nginx-vs-apache-which-is-the-best-web-server/
'Linux' 카테고리의 다른 글
ZFS 의 주요기능(cow, checksum, RAID-Z..등등) (0) | 2021.01.13 |
---|---|
ZFS 개요 및 구조 (0) | 2021.01.13 |
[Ubuntu] 설치 후 할 일 (0) | 2020.07.26 |
[Linux] Raid, Disk관리 (0) | 2020.05.27 |
[Linux] 논리볼륨 Logical Volume (구성,추가,축소) (0) | 2020.05.27 |