728x90
<피케이의 Nginx> 영상 요약
https://www.youtube.com/watch?v=6FAwAXXj5N0
Nginx의 키워드
- 웹서버, 리버스 프록시, 로드 밸런서, 이벤트 기반 구조, 웹 서버 분야 1등
Nginx를 선택하는 이유?
- 동시 커넥션에 강하다 ->
C10K
문제 해결 - SSL 터미네이션 : (https -> Nginx -> http), 비즈니스 로직을 대신 처리해줌. 웹 서버 가속기 역할을 함
- 캐싱 기능 : http 프로토콜로 캐싱 가능
- HSTS(HTTPS Strict Transport Security)
- CORS 처리
- TCP/UDP 커넥션 부하 분산
- HTTP/2
Apache를 선택하는 이유?
- 여러 OS에서 잘 호환성이 좋다. 특히 윈도우
- 모듈로 인한 확장성이 좋다
참고 자료
- 현업 개발자들이 사용하는 Nginx Server 설정 파일
- https://github.com/h5bp/server-configs-nginx
Apache 탄생 배경
- 1995년 당시 unix 기반 최초 웹서버 NCSA HTTPd가 주류였으나, 버그가 많았음
- NCSA HTTPd 버그와 구조를 개선한 것이 Apache
- 출시 직후 1996년 12월부터 웹서버 1위 (아파치 41%, NCSA HTTPd 12%)
Apache 작동 원리
- 요청 올 때마다 connection process를 생성
- 요청이 많이 들어올 것을 대비해 미리 process를 만들어 놓는 prefork 기능이 있음
Apache의 장점
- 다양한 모듈을 추가하기가 쉬운 구조
- 요청, 응답을 한 서버에서 처리하기가 용이
Apach의 단점 (C10K
문제)
- 서버에 동시 연결이 작업이 많아질 때 에러가 발생하기 시작(
C10K
(Connection 10000 Problem) - 구조적 문제 : 커넥션 생성 -> 프로세스 생성 -> 생성된 프로세스가 많아짐 -> 메모리 부족 현상 발생
Nginx의 탄생 배경
- Nginx는 apache server의 구조적 문제를 개선한 소프트웨어
- 최초 Apache 서버와 함께 사용하는 보완제 역할로 탄생
Nginx의 역할은 무엇인가?
- 수 많은 동시 커넥션을 Nginx가 핸들링 -> 동시 커넥션을 처리 못하는 Apache의 한계를 극복하게 해줌
- 추가로 Nginx 자체로도 웹서버 -> HTML, CSS, JS, 이미지 등 정적 파일은 직접 처리 가능
Nginx의 구조
- master process : worker process를 생성합니다. CPU의 코어 개수만큼 worker process를 생성합니다.
- worker process : 실제로 클라이언트의 요청을 처리합니다.
Nginx가 언제 로드 밸런서 역할을 하는가?
- 여러 동시 커넥션들을 관리할 때 뒷단 서버가 추가해주는데, 이때 Nginx가 로드 밸런서 역할을 함
그럼 Apache는 망했냐?
- Apache MPM 모듈을 추가하여 여러 커넥션들을 처리해주는 기능을 추가했음
- 그러나 동시 커넥션 성능은 Nginx가 더 좋음
728x90
'Research > Server' 카테고리의 다른 글
서버_Nginx란 (0) | 2023.03.06 |
---|---|
PM2 모듈 기본 사용법 (1) | 2023.03.01 |
서버_Forward Proxy, Reverse Proxy, Load Balance (0) | 2023.02.06 |
서버_Serverless란 (0) | 2023.02.06 |
서버_네이버의 Node.js API 서버 개선 사례 (0) | 2023.02.03 |
댓글