Nginx?
- 트래픽이 많은 웹 사이트 서버가 받는 부하에 도움을 주는 오픈소스 웹 서버 소프트웨어. 비동기 이벤트 기반구조가 특징.
- 고성능, 확장성, 고가용성 웹서버, 역방향 프록시 서버 및 웹 가속기(HTTP 로드밸런서, 콘텐츠 캐시 등의 기능 결합) (공식문서)
- 클라이언트는 브라우저를 뜻하며, 유저라고도 볼 수 있다.
- 웹 서버는 정적 파일에 대한 응답을 담당한다.
- WAS는 동적인 처리를 담당하며 처리 후에 응답을 한다.
Nginx 구조
Nginx는 한 개 또는 고정된 스레드/프로세스에서 여러 클라이언트 요청을 비동기 방식으로 동시에 처리한다.
새로운 요청이 들어와도 새로운 프로세스 및 스레드를 생성하지 않기 때문에, 프로세스/스레드 생성 비용이 존재하지 않고, 적은 자원으로도 효율적인 운용이 가능하다.
Nginx는 하나의 마스터 프로세스와 여러개의 워커 프로세스로 구성된다.
- 마스터 프로세스 : 설정 파일을 읽어 워커 프로세스를 생성한다.
- 워커 프로세스 : 실제 일하는 프로세스
마스터 프로세스는 워커 프로세스를 만들 때 listen 소켓을 배정하며 생성된 워커 프로세스는 소켓에 들어 올 요청을 기다린다. 소켓에 요청 발생 시 커넥션을 형성하고 처리한다.
그러나 하나의 커넥션만 담당하지 않고 비동기로 여러 커넥션을 관리한다.
요청이 발생하지 않으면 새 커넥션을 만들거나 이미 만들어진 커넥션에 있는 요청을 처리한다.
일반 요청들은 큐에 저장되고 워커 프로세스들은 큐에서 순서대로 요청을 가져와 처리하게 된다.
큐에 있는 요청 중 긴 시간이 필요한 요청이 있다면 다른 작업을 수행 할 수 없기 때문에 스레드 풀에 이벤트를 위임한다.
Nginx 특징
- 리버스 프록시 : 클라이언트와 서버 사이에 위치해 중개의 역할을 할 수 있다.
- 동적 설정 변경 : reload 명령어를 사용할 경우 설정을 변경 할 때 동적으로 적용 되게 할 수 있다.
- 설정 파일 변경 -> 새 워커 프로세스 생성
- 이전 워커 프로세스는 더 이상 커넥션을 생성하지 않고 모든 요청 처리 후 종료된다.
- 로드 밸런싱 : 요청을 서버의 상태에 따라 맞춰 분산 시킬 수 있다.
출처 및 참고
https://xxeol.tistory.com/30#Nginx%EB%9E%80%3F-1
Nginx란?
장바구니 웹 협업 미션에서 배포시 Nginx를 활용했는데, Nginx란 무엇인지 알아보도록 하자. 참고로, Nginx를 이해하기 위해서는 웹서버와 WAS, 그리고 Reverse Proxy 개념에 대해서 숙지하고 있어야한다.
xxeol.tistory.com
https://ssdragon.tistory.com/60
Nginx란?
2022.02.21 게시글 등록 2022.10.03 수정 및 추가 - 오타 수정 - Q&A 추가 - 기존글 수정 및 추가 올해 캡스톤 프로젝트에서 NGINX를 사용하게 됐는데 어떤 것인지 잘 몰라서 공부하기로 했다. 🧐 Nginx란?
ssdragon.tistory.com
'간단이론정리' 카테고리의 다른 글
[OOP] 객체 지향 4대 특징 및 객체 지향 5대 원칙(SOLID) (0) | 2024.06.20 |
---|---|
[OOP] 디자인 패턴(Design Pattern) 정리 (0) | 2024.06.20 |
[OS] 프로세스(Process)와 스레드(Thread) (0) | 2024.06.12 |
Filter, Interceptor 그리고 AOP (0) | 2024.06.12 |
트랜잭션 격리수준(Isolation Level) (0) | 2024.06.11 |