1. Nginx 가 뭐지?
  2. Nginx 등장 이유
  3. 장점
  4. 단점

 

1. Nginx 가 뭐지

취업을 위해서 일단 웹서버라고 듣고 요새 이걸 써야한다고만 들었다. 
취업하고 사용하다보니 사용법은 아는데 왜 사용하지 그리고 사용하는 설정들에 대해서만 알지 좀 더 깊이 알고싶어 찾아보게 되었다.

 

먼저 두가지만 기억하자

  1. 웹서버(WS)
    1. 요청을 받아 정적 리소스(HTML)를 제공하거나 동적 처리가 필요한 요청을 웹 애플리케이션 서버로 전달
    2. 정적인건 본인이 처리 동적인건 넘겨주는 역할
  2. 웹 애플리케이션 서버(WAS)
    1. 전달받은 요청을 기반으로 비즈니스 로직을 처리하고 데이터를 생성 및 반환한다.
    2. 요청을 최종적으로 처리 및 반환 역할

간단히 웹서버가 전달자 느낌이면 웹 애플리케이션 서버가 처리자 역할이라 생각한다.

 

그래서 Nginx란?

Nginx는 웹서버이다.
정적 파일을 제공하고, 요청을 전달하고(프록시), 트래픽을 분산한다(로드 밸런싱)

어렵다면 레스토랑 웨이터 느낌이라 생각하자!
웨이터(Nginx)는 메뉴판 전달과 같은 간단한건 처리하지만 요리와 같은 복잡한건 요리사(웹 애플리케이션 서버)에게 넘긴다.

 

2. Nginx 등장 이유

Nginx는 동시 접속 처리, 성능, 로드 밸런싱, 리버스 프록시의 효율성을 높이기 위해 등장한 고성능 웹 서버

 

 

기존에는 톰켓을 썻다.

 

톰캣과 Nginx의 차이는 뭘까

 

  1. 비동기 방식
    1. Nginx는 요청을 비동기/이벤트 기반으로 처리하다보니 여러 요청이와도 한번에 처리가 되서 효율적으로 처리한다.
    2. 톰캣은 스레드 기반으로 처리하다보니 하나의 톰캣서버에서 요청이 너무 몰리게되면 스레드가 고갈되어 성능이 저하된다.
  2. 가벼움
    1. Nginx는 정적 파일등을 제공하는데에 있어 최적화 되어있다.
    2. 톰켓은 DB, 서비스 처리등 복잡한 요청 처리에 최적화 되어 있다.
  3. 설계 목적 차이
    1. Nginx는 빠른 정적파일 제공, 트래픽 분산(로드 밸런싱)에 최적화 되어있다.
    2. 톰캣은 서비스 처리 등 동적 요청(java 애플리케이션)에 초점이 맞춰져 있다.

 

트래픽이 증가함에 따라 톰캣의 처리방식에서 성능 문제가 발견되었고 그로인해 비동기 처리 방식인 Ngixn가 채택되었다.

 

• 톰캣은 손님마다 요리를 만들어주는 요리사 → 많은 손님이 오면 요리가 느려진다.
•Nginx는 간단한 음식을 바로 제공하는 패스트푸드점 직원  → 빠르고 효율적이다.

 

 

3. Nignx 장점

  1. 고성능
    • 비동기 이벤트 기반으로 동시 접속 처리 능력이 뛰어나서 대량의 요청도 효율적으로 처리한다.
  2. 가벼움
    • 정적 콘텐츠(HTML, CSS, 이미지 등)을 가볍고 빠르게 제공한다.
  3. 로드 밸런싱
    • 여러 서버로 트래픽을 분산해 서버 과부하를 방지할 수 있다.
  4. 리버스 프록시
    • 요청을 애플리케이션 서버(WAS)로 전달하면서 보안과 성능을 향상시킨다.
  5. 높은 안정성
    • 과부하 상황에서도 성능 저하가 적고, 서버 크래시 가능성이 적다

 

4. Nginx 단점

  1. 동적 처리 컨텐츠 한계
    • 애플리케이션 로직을 실행할 수 없어, 동적 요청은 웹 애플리케이션 서버에 의존해야 한다.
  2. 설정 복잡성
    • 초기 설정이 어렵다!

 

결국엔 현재 개발에 있어서 굳이 이걸 사용 안할 이유가 없는 강력한 도구라 생각합니다!
많은 곳에서 기본 옵션처럼 사용하는 걸 보면 결국 자세히 알고 더 잘 사용할 수 있으면 좋지않을까..

'Nginx' 카테고리의 다른 글

Nginx 설치 및 설정 파일 확인  (0) 2025.01.25

+ Recent posts