Nginx 개요

robert·2022년 11월 18일
0

Nginx란?

  • 간단히 말해 경량 웹서버다.
  • 클라이언트로부터 요청을 받고 요청에 맞게 정적 파일을 응답해주는 역할을 한다.
  • Reverse Proxy Server로 활용하여 요청을 받아 WAS로 전달하는 역할로도 사용이 가능하다.

Nginx를 왜 사용하는가?

  • 높은 동시성 처리 : Event-Driven 방식을 사용하여 Apache 웹서버 대비 적은 리소스를 사용하여 높은 동시성 처리가 가능하다.
  • 로드밸런싱 : 요청이 몰릴 경우 요청을 여러 서버로 분산 시키는 역할로도 사용 가능하다.
  • 보안 : 외부에서 WAS로 직접 붙지 않고 Nginx를 통함으로써 외부와의 직접적인 접촉을 막는다. 이로써 방화벽을 설치하거나 기타 조치를 통해 WAS 서버가 죽는 것을 방지할 수 있다.
  • 캐싱 : 이미지, CSS, JS 파일 같은 정적 컨텐츠를 캐싱하여 빠른 응답이 가능하다.

Nginx, Apache 비교

Apache

  • Apache는 요청을 받을때 새로운 프로세스 또는 스레드가 생성하여 처리가 된다. 요청마다 스레드가 생성되므로 자원 소모가 크다.

Nginx

  • Nginx는 Event-Driven 방식으로 동작하기 때문에 한 개 또는 고정된 프로세스만 사용하고 요청은 비동기적으로 처리한다.
  • Nginx는 새로운 요청이 들어와도 새로운 프로세스와 스레드를 생성하지 않기 때문에 자원 사용이 적다.

Nginx 구조

  • Nginx는 하나의 Master Process와 다수의 Worker Process로 구성되어 실행된다.
  • Master Process는 설정 파일을 읽고 유효성 검사를 하며 Worker Process를 관리한다.
  • 실제 요청 처리는 Master Process가 아니라 Worker Process가 요청을 처리한다.
  • Worker Process의 개수는 설정 파일에서 정의되며, 정의된 프로세스 개수와 사용 가능한 CPU 코어 숫자에 맞게 자동 조정된다.
profile
화이팅!

0개의 댓글