Nginx

mangez_js·2025년 1월 1일

Study

목록 보기
36/47

Nginx란?

고성능의 HTTP 및 역방향 프록시 서버, 메일 프록시 서버, 일반 TCP/UDP 로드 밸런서로 사용되는 오픈 소스 소프트웨어

주요 기능

1) HTTP 웹 서버

  • 정적 콘텐츠 제공에 최적화 되어 있습니다.
  • 동적 콘텐츠는 외부 애플리케이션 서버와의 연동을 통해 처리
    2) 역방향 프록시(Reverse Proxy)
  • 클라이언트 요청을 백엔드 서버로 전달하고 응답을 변환합니다.
  • 백엔드 서버의 부하를 분산하거나 보안을 강화할 수 있습니다.
    3) 로드 밸런싱
  • 다수의 서버에 트래픽을 분산하여 부하를 줄이고 고가용성을 제공합니다.
  • 여러 로드 밸런싱 알고리즘 지원:
  • Round Robin(기본)
  • Least Connections(가장 적은 연결)
  • IP Hash(클라이언트 IP 기반)
    4) 캐싱
  • 정적 콘텐츠 또는 백엔드 서버의 동적 콘텐츠를 캐싱하여 성능을 향상시킵니다.
    5) SSL/TLS 지원
  • HTTPS를 지원하며, SSL/TLS 인증서를 쉽게 설정할 수 있습니다.
  • HTTP/2와 같은 최신 프로토콜 지원
    6) TCP/UDP 로드 밸런싱
  • HTTP가 아닌 일반 네트워크 프로토콜(TCP, UDP)에 대한 부하 분산 기능
    7) 매일 프록시
  • IMAP, POP3, SMTP와 같은 이메일 프로토콜을 지원

특징

1) 고성능

  • 이벤트 기반(비차단 I/O) 아키텍처를 사용하여 동시 연결 수를 효율적으로 처리

  • 기존의 프로세스 기반 서버(Apache) 보다 적은 리소스로 더 많은 요청 처리 가능
    2) 경량성

  • 메모리 사용량이 적으며, 설정 파일이 간단하고 가볍습니다.
    3) 확장성

  • 모듈화된 구조로 추가 기능을 쉽게 확장 기능

  • 동적 모듈 로드를 지원
    4) 안정성

  • 높은 안정성과 가용성, 적은 다운타임을 제공
    5) 다기능

  • 다양한 역할(웹 서버, 프록시 서버, 로드 밸런스)을 수행

    Nginx VS Apache

    특징NginxApache
    처리 방식이벤트 기반(비차단 I/O)프로세스/스레드 기반
    동시 처리높은 동시 연결 처리 가능많은 열결 시 리소스 소비 증가
    정적 콘텐츠빠르고 효율적비교적 느림
    동적 콘텐츠별도의 애플리케이션 서버와 연동모듈(PHP,Python 등)로 직접 처리 가능
    설정 파일간단하고 가독성이 좋음더 세분화된 설정 가능

    주요 구성 요소

    1) Worker Process

  • 클라이언트 요청을 처리하며, 비차단 이벤트 기반으로 작동합니다.

  • 병렬로 여러 요청을 효율적으로 처리
    2) Master Process

  • Worker 프로세스를 관리하고 설정 파일 변경을 감지하며 로그를 관리
    3) Configuration

  • 설정 파일은 /etc/nginx/nginx.conf에 위치

  • 설정 파일 구조
    ∘ Main : 글로벌 설정(worker 프로세스 수, 로그 위치 등)
    ∘ HTTP : HTTP 관련 설정(서버, 로드 밸런싱 등)
    ∘ Server : 도메인 별 가상 호스트 설정
    ∘ Location : 요청 URI에 따라 처리 규칙 지정

0개의 댓글