전체 보기
🔴

[테코톡] Nginx 등장 배경 (vs 아파치 서버)

작성일자
2023/03/12
태그
SUB PAGE
프로젝트
테코톡
책 종류
1 more property

공부한 내용

[테코톡] Nginx 등장 배경 (vs 아파치 서버)

아파치 서버
등장)
unix 기반 최초의 웹서버 NCSA HTTPd의 버그가 많아, 이를 수정해 만든 것이 아파치 서버 (1995)
구조)
새로운 요청 들어옴 → 새로운 프로세스 생성 → 커넥션 형성
유닉스 계열 OS가 네트워크 커넥션 형성하는 모델 적용한 것
prefork 방식 사용함
프로세스 생성 시간 오래 걸림 → 요청 전 프로세스 미리 생성해 해결
생성해둔 프로세스 모두 할당됨 → 추가로 프로세스 생성
장점)
개발 쉬움
서버에 기능 추가 쉬움
동적 컨텐츠 처리 가능
확장성 좋음
요청, 응답 처리를 하나의 서버에서 해결 가능
단점)
1999, 인터넷 트래픽 증가 → C10K 문제 발생
클라이언트 수 많아지면 동시 연결 커넥션 많아짐 → 동시 커넥션 수 10000 넘어가면 더이상 추가적인 커넥션 형성이 불가한 C10K 문제 발생
클라이언트 수와 동시 연결 커넥션의 상관 관계 (토글)
아파치 서버 구조 상 동시 처리 커넥션 많아지면 발생하는 문제들
할당되는 프로세스가 많아져 메모리 부족 현상을 일으킴
여러 기능이 추가된 무거운 프로그램으로 인해 프로세스가 차지하는 리소스 양 더 늘어남
많은 커넥션에서 요청 들어오면 CPU 코어 컨텍스트 스위칭 빈번해져 CPU 부하 일으킴
Nginx
등장) 새로운 구조 채택해, 아파치 서버 보완하는 소프트웨어로 만든 것이 Nginx (2004)
초기 목적)
아파치 서버 앞 단에 놓여서 아파치 서버의 구조적 한계를 보완
많은 동시 커넥션 대신 유지
웹 서버 역할
정적 파일에 대한 요청 스스로 처리 가능
동적 파일 요청 받았을 때만 서버와 커넥션 형성