초보개발자

Nginx 본문

이론/Network

Nginx

___yejin 2018. 2. 25. 18:38

Nginx(엔진 x)


웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 한다. 웹 서버, 리눅스 프록시 및 메일 프록시 기능을 가진다.

Nginx는 요청에 응답하기 위해 비동기 이벤트 기반 구조를 가진다. 이것은 아파치 HTTP 서버의 스레드/프로세스 기반 구조를 가지는 것과는 대조적이다. 이러한 구조는 서버에 많은 부하가 생길 경우의 성능을 예측하기 쉽게 해준다.


HTTP/2를 지원하려고 하고 있다. 


프로그래밍 언어 C


Apache 

 nginx

  •  쓰레드/프로세스 기반 구조로 요청 하나당 쓰레드 하나가 처리하는 구조
  • 사용자가 많으면 많은 쓰레드 생성, 메모리 및 CPU 낭비가 심함
  • 하나의 쓰레드: 하나의 클라이언트라는 구조
  • 비동기 Event-Driven 기반 구조
  • 다수의 연결을 효과적으로 처리 가능
  • 대부분의 코어 모듈이 Apache보다 적은 리소스로 더 빠르게 동작 가능
  • 더 작은 쓰레드로 클라이언트의 요청들을 처리 가능 



HTTP 프록시와 웹 서버 기능

  • 정적 파일과 인덱스 파일 표현, 자동 인덱싱 기능
  • 캐싱을 통한 리버스 프록시
  • Load Balancing
  • 고장 진단
  • SSL 지원
  • 캐싱을 통한 FastCGL 지원 (PHP)
  • Name-, IP-기반 가상서버
  • FLV 스트리밍
  • MP4 스트리밍 모듈을 이용한 MP4 스트리밍
  • 웹페이지 접근 인증
  • gzip 압축
  • 10,000개의 동시 접속을 처리할 수 있는 능력
  • URL 다시 쓰기
  • 맞춤 로깅
  • 서버 사이드 기능 포합
  • WebDAV

메일 프록시 기능
  • SMTP, POP3, IMAP 프록시
  • STARTTLS 지원
  • SSL 지원

장점
  • 보안
    • 앞 단의 nginx로 리버스 프록시로 사용하고 뒷단은 WAS를 설치하여 외부에 노출되는 인터페이스에 대해 nginx WAS 부분만 노출 가능
  • Backend service wkddo cjfl
  • 속도
  • Load Balancing
  • sub domain 관리 기능
  • size 큰 데이터 caching 처리 기능

비교 WAS

참고


'이론 > Network' 카테고리의 다른 글

Zookeeper  (0) 2018.02.25
CDN(Content Delivery Network)  (0) 2018.02.25
[용어정리] LoRa, LTE-M, NB-IoT  (0) 2017.06.27
Comments