nginx 이해하기

YulHee Kim·2021년 10월 9일
0

웹 지식

목록 보기
4/4
post-thumbnail

✔️nginx란?

트래픽이 많은 웹사이트를 위해 확장성을 위해 설계한 비동기 이벤트 기반구조의 웹서버 소프트웨어입니다.

가벼움과 높은 성능을 목표로 하는 웹서버 소프트웨어

일반적으로 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가집니다.

프록시란?

프록시란 '대리'라는 의미로 네트워크 기술에서는 프로토콜에 있어서 대리 응답 등에서 친숙한 개념입니다.

특징?
프록시 서버는 클라이언트 입장과 서버의 입장에서 볼 때 서로 상반되는 역할을 하는 것처럼 인식됩니다. 클라이언트 호스트 입장에서 본다면 프록시 서버는 마치 원격 서버처럼 동작하고, 원격 서버에서의 입장에서 본다면 마치 클라이언트처럼 동작한다는 것입니다.

✔️Apache와 nginx 비교


예전엔 apache를 많이 썼지만 지금은 nginx가 상승세입니다.

Apache

  • 쓰레드/프로세스 기반 구조로 요청 하나당 쓰레드 하나가 처리하는 구조
  • 사용자가 많으면 많은 쓰레드 생성, 메모리 및 CPU 낭비가 심함
  • 하나의 쓰레드 : 하나의 클라이언트 라는 구조

nginx

  • 비동기 Event-Driven 기반 구조
  • 다수의 연결을 효과적으로 처리 가능
  • 대부분의 코어 모듈이 Apache보다 적은 리소스로 더 빠르게 동작가능
  • 더 작은 쓰레드로 클라이언트의 요청들을 처리가능

✔️Nginx 활용

다음과 같은 기능으로 사용할 수 있습니다

  • HTTP Server
    • 정적 파일을 처리하는 web server의 역할을 수행
  • Reverse proxy server
    • 클라이언트의 요청을 Application server에 배분합니다.
    • 클라이언트 80 포트 요청을 8080, 8081 등 여러 Application server로 보내줍니다.
    • 각 application server에 요청을 배분해서 부하를 분산합니다.
  • Mail proxy server
  • Generic TCP/UDP proxy server

https://juyoung-1008.tistory.com/10
https://azderica.github.io/00-network-nginx/
https://m.blog.naver.com/jhc9639/220967352282

profile
백엔드 개발자

0개의 댓글