blog.pisik.club
article thumbnail
Published 2025. 6. 9. 16:33
[Nginx] Nginx 란? For 전공, 전문가/IT
728x90

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

 

728x90
profile

blog.pisik.club

@pisik

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!