Nginx 란?
NGINX 는 오픈 소스 웹서버 프로그램 중 하나로, Apache보다 동작이 단순하고 동시 접속을 처리하기에 특화된 서버입니다.
동시접속자(700)이상이라면 서버를 증설하거나 Nginx 환경을 권장하고 있습니다.
그럼 왜 Nginx를 많이 사용할까?
Nginx가 많이 사용되는 이유는 리버스 서버의 프록시로서의 역할을 수행하고 있기때문에 응용프로그램 서버 앞에 설치되어 사용되고 있기 때문입니다.
클라이언트가 서버에 요청(request)을 하게 되면, 맨 앞에 위치해있는 Nginx가 프록시 서버의 역할을 수행 해 리버스서버(응용프로그램 서버)에 전달해 데이터를 가져오는 기능을 제공합니다.
즉, 리버스 서버의 프록시 역할을 수행한다고 해서 리버스 프록시라고 사용되는 편입니다.
Q. 리버스 프록시 없이 응용프로그램으로 요청 할 경우에는?
프록시 서버를 사용하지 않고 응용프로그램 서버로 요청 할 경우에는 단일 스레드 혹은 단일 프로세스로 작동 (블로킹 방식)합니다.
즉 , 한번에 하나의 요청만 처리 할 수 있어 다른 요청이 들어오면 앞의 요청이 종료될때까지 응답대기상태가 될 수 밖에 없습니다.
이러한 방식은 요청의 양이 적을 때는 괜찮지만 , 요청이 많아지거나 대규모 트래픽을 처리해야 하는 경우에는 성능 저하와 서버 부하가 발생해 성능 저하를 유발합니다.
Q. 리버스 프록시를 사용한다면?
Nginx는 다중 프로세스로 요청을 병렬로 처리(논블로킹 방식) 할 수 있습니다.
클라이언트의 요청을 처리할 응용 프로그램 서버에 전달하고, 응답이 반환 될때까지 다른 요청을 추가로 처리 할 수 있습니다.
즉, 요청을 배분해주는 역할을 수행하고 있습니다.
이를 통해 요청 처리 속도를 빠르게 하고, 응답 대기 시간을 최소화 할 수 있습니다.
Nginx는 다중 프로세스를 사용하는 것이 디폴트이지만, 비동기 이벤트 드리븐 방식으로 다중 요청 처리를 지원하기때문에 비동기 이벤트 드리븐 방식을 주요 처리 방식으로 사용한다.
즉, 다중 프로세스 + 이벤트 드리븐 방식(단일 쓰레드) 이다.
이벤트 드리븐 방식은 비동기 프로그래밍의 한 형태로, 이벤트가 발생할때마다 이벤트에 대한 콜백 함수를 호출하여 처리하는 방식입니다.
쓰레드나 프로세스를 생서하는 것이 아니라, 단일 쓰레드에서 이벤트를 처리하므로 리소스 사용을 최적화 할 수 있습니다.
그로인해, 이벤트가 발생하면 바로 처리가 가능하므로 대기 시간이나 처리 지연 시간이 적어집니다.
따라서 비동기 처리방식을 사용함으로써, Nginx는 높은 성능과 안정성을 제공 할 수 있으며 대규모 트래픽에서도 효율적으로 요청을 처리할 수 있습니다.
참고 사이트
https://whatisthenext.tistory.com/123
Nginx 이해하기 및 기본 환경설정 세팅하기
NGINX Nginx의 개요 엔진엑스(Nginx)는 Igor Sysoev라는 러시아 개발자가 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되
whatisthenext.tistory.com
'For 전공, 전문가 > IT' 카테고리의 다른 글
다크웹의 검은 장막, 과연 걷힐 수 있을까? (2) | 2025.06.05 |
---|---|
[JAVA] Collectors 인터페이스 개념 및 사용법 (1) | 2025.05.26 |
줌 회의 한 번에 14억 증발? NFT CEO 해킹 사건의 전말 (1) | 2025.05.26 |
JWT란? JWT(Json Web Token) 개념(Java-jwt) 알아보기 (2) | 2025.05.19 |
쿼리튜닝, MySQL 8.0 자주 사용하는 힌트 목록 알아보기 (0) | 2025.05.19 |