티스토리 뷰

Server/Nginx

Nginx 의 기능에 대하여

DUCKBAE's 2024. 12. 11. 22:16

Nginx 는 세계에서 널리 쓰이는 웹 서버로서 리버스 프록시(reverse proxy)라고도 불리며, 가볍고 높은 성능을 제공한다.

또한 다양한 기능을 제공하는데, 본문에서 Nginx는 어떠한 기능을 제공하는지에 대해 알아보려고 한다.


HTTP 웹 서버

Nginx는 HTTP 웹 서버로서, 클라이언트로부터 HTTP 요청을 받아 웹 페이지에 필요한 정적 컨텐츠(HTML, CSS, JavaScript, 이미지 등)를 제공하며 리버스 프록시를 통해 동적 컨텐츠 또한 제공한다.

즉, 정적 컨텐츠를 직접 제공할 수 있고 동적 컨텐츠에 대해서는 백엔드 서버로 전달하여 그 결과를 클라이언트에게 반환할 수 있다.

 

리버스 프록시

Nginx는 리버스 프록시로서, 클라이언트의 요청을 백엔드로 전달하고 백엔드 서버의 응답을 클라이언트에게 전달한다.

 

리버스 프록시는 클라이언트가 요청을 보내면 그 요청을 받아 내부망에 있는 실제 서버로 전달하는 역할을 하는데, 클라이언트는 직접 웹 서버의 IP 주소를 알 필요 없이 리버스 프록시 서버를 통해 웹 서비스에 접근한다.

https://www.cloudflare.com/ko-kr/learning/cdn/glossary/reverse-proxy/

Nginx는 리버스 프록시로서의 역할을 하기 때문에, 클라이언트와 WAS 서버의 사이에서 동작한다.

따라서, 클라이언트는 Nginx의 IP 주소만을 알고 요청을 보내며 해당 요청을 받은 Nginx는 WAS 로 전달한다.

 

로드 밸런서

Nginx는 로드 밸런서로서, 여러 대의 서버에 트래픽을 고르게 분산시켜 한 서버에 과도한 부하가 집중되는 것을 방지한다.

 

로드 밸런서는 한 대의 서버에 모든 요청이 가는 것을 여러 대의 서버에 고르게 분산 시켜, 각 서버의 부하를 균등하게 하여 성능을 최적화한다.

단일 서버 환경에서는 로드 밸런서를 적용할 필요가 없지만, 여러 대의 서버를 운영하고 있으면 로드밸런서는 필수적인 기능이 된다.

https://www.appviewx.com/education-center/load-balancer-and-types/

로드 밸런싱의 처리 방법으로 여러 알고리즘이 있지만, Nginx에서는 기본적으로 서버의 가중치를 고려하여 서버 전체에 균등하게 분산 시키는 Round Robin 알고리즘을 사용한다. -Nginx에서 제공하는 로드 밸런싱 방식 더보기

 

컨텐츠 캐시

Nginx는 컨텐츠 캐싱 기능을 제공함으로써, 클라이언트가 캐시에 저장된 컨텐츠를 요청하면 WAS 에 연결하지 않고 직접 컨텐츠를 반환한다.

컨텐츠 캐시는 주로 정적 컨텐츠(CSS, 이미지 등)와 동적 컨텐츠를 처리하는데, 이를 활용하면 서버 부하를 줄이고 응답 시간을 개선할 수 있다.

https://www.f5.com/company/blog/nginx/nginx-high-performance-caching

위 그림에서 캐시 기능이 적용된 경우, 첫 번째 사용자가 index.html을 요청하면 Nginx는 서버에서 해당 정적 컨텐츠를 제공하고 이를 캐시할 것이다. 두 번째 사용자가 동일한 index.html을 요청하면, Nginx는 서버에 다시 요청하지 않고 캐시된 컨텐츠를 바로 제공하여 백엔드의 호출을 줄이고 응답 속도를 향상시킨다.

 

메일 프록시 서버

Nginx는 메일 프록시 서버로서, IMAP, POP3, SMTP 프로토콜을 지원한다.

 

 


정리

Nginx 는 HTTP 웹서버, 역방향 프록시, 로드 밸런서, 메일 프록시 서버로 사용할 수 있으며 컨텐츠 캐시 기능을 제공한다.

클라이언트로부터 HTTP 요청을 받아 정적 컨텐츠를 직접 제공할 수 있고, 동적 콘텐츠에 대해 백엔드 서버로 전달하고 받은 응답을 클라이언트에 전달한다.

클라이언트로부터 받은 트래픽을 여러 서버에 분배하여 부하를 분산시키고, 메일 프로토콜을 지원하며 자주 요청되는 데이터에 대해 캐시 처리하여 성능을 최적한다.


참고

https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/

 

HTTP Load Balancing | NGINX Documentation

MyF5 Your key to everything F5, including support, registration keys, and subscriptions

docs.nginx.com

 

'Server > Nginx' 카테고리의 다른 글

[Nginx] Worker Process  (0) 2022.08.25
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함