nginx VS apache

성난호랑이 시니철 ㅣ 2024. 7. 31. 15:39

nginx VS apache  웹 서버 (http server) 비교

 

혼자 공부 필기 내용입니다.

 

유투브 우아한테크를 자주 보고있다.

거기서 nginx VS apache 비교가 나와서 따로 저만 이해 할수있게 정리했습니다. 

 

자세한 내용은 아래 참조 확인하면 이해가 빠르게 될거 같습니다.

 

nginx ( 2002 )

리버스 프록시, 로드 밸런서, 이벤트 기반 구조

 

master process -> worker process  ( 일하는 놈  ) 

connection 생성 삭제  이벤트 -> 커널 큐에 담아서 이용

오래걸리는 작업은 Thread Pool 이용

master process  는 CPU코어 만큼 worker process  생성 해서 작업

 

장점 : 동시 커넥션 양 최소 10배 증가

          동일한 커넥션 수일 떄 속도 2배 향상

 

  • 이벤트 중심 접근 방식으로 하나의 스레드 내에서 여러 요청을 처리하는 구조
  • 비동기 Event-Driven 구조 : Event Handler에서 비동기 방식으로 먼저 처리되는 요청을 진행 
  • 코어 모듈이 Apache보다 적은 리소스로도 많은 트래픽을 효율적으로 처리 가능
  • 직까지는 동적 모듈과 로딩을 지원하지 않음

 

 

apache  ( 1995 )

procsee 만드는데 시간이 오래 걸려서 미리 생성하는 prefork 방식이용

장점 : 개발이 쉽다,  다양한 모듈 추가, 확장성이 좋다

 

C10K : 동시 커넥션이 많아 졋을때 발생

메모리 부족 -> 무거운 프로그램 -> CPU 부하 

                       

apache 도 MPMs 라는 모듈 추가 

묘듈 종류가 nginx보다 많이 있다.

 

  • 프로세스 기반 접근 방식으로 하나의 스레드가 하나의 요청을 처리하는 구조
  • 매 요청마다 스레드를 생성 및 할당해야 하기 때문에 리소스를 많이 잡아먹음
  • 동적 모듈과 로딩을 지원함


동시 커넥션 수당 메모리 사용에서 nginx 우수하다. 대용량 트래픽을 처리하는 웹사이트에서는 nginx를 사용하는게 좋을거 같다.

nginx에 없는 모듈을 사용할때는 apache를 사용하는게 좋을거같다. 

 

 

 

참조 : https://hyeon9mak.github.io/nginx-vs-apache/

 

Nginx vs Apache

우아한테크코스 피케이의 테코톡을 참고해서 정리한 내용이다!

hyeon9mak.github.io

참조 : https://www.youtube.com/watch?v=6FAwAXXj5N0

 

'공부 > ' 카테고리의 다른 글

면접후기 1 ( java backend )  (0) 2024.08.07
Intellij 에서 javadoc 문서 만들기  (0) 2017.01.13
통켓 메모리 설정  (0) 2017.01.10
JSTL 사용하기  (0) 2016.12.08