본문 바로가기
Etc

[2021.07.29] Nginx 개념 및 사용 용도 (+ apache 와 Nginx의 차이점)

by injekim97 2021. 7. 29.
반응형

[2021.07.29] Nginx 개념 및 사용 용도 (+ apache 와 Nginx의 차이점)

 

 

 

 

 

해당 게시글은 nginx의 개념 , apache와 nginx의 차이점에 대해 알아보기 위해 작성된 게시글이다.

해당 게시글을 보고 개념 및 사용용도에 정확하게 알아보자.

 

 

 

 

nginx란 ?

- 동시접속 처리에 특화된 웹 서버 프로그램

- 트래픽이 많은 웹사이트를 위해 확장성을 위해 설계한 비동기 이벤트 기반 구조(Event Driven) 의 웹서버 소프트웨어

- 클라이언트의 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 사용

 

 

 

nginx 사용 용도?

- Linux server 에서 virtual host를 사용하기 위해서
- port forwarding을 하기 위해서

e.g : air.monorama.kr:5601 -> air.monorama.kr쳐도 5601으로 자동으로 접속하게 해줌

 

 

 

 

 

 

Nginx 와 Apache와의 차이점


Apache
- Thread & Process 구조로 request 1개를 쓰레드 1개가 처리하는 구조
- 사용자가 많으면 많은 쓰레드가 생성되어 메모리 및 CPU 낭비가 심해짐

 



Nginx

- Apache보다 적은 자원으로 빠르게 동작 가능

- 비동기 Event-Driven 구조

* Event-Driven 란?

-> 주기적으로 이벤트가 발생했는지 확인하여, 이벤트가 감지되면 이벤트를 처리하는 방식

 

 

 

 

동기(Synchronous)  & 비동기(Asynchronous)

* 동기(Synchronous)

-> A가 B에게 데이터를 요청했을 때, 이 요청에 따른 응답을 주어야만 A가 다시 작업 처리가 가능

즉, 응답을 주지 않으면 계속 대기해야함(작업을 하지 못함)

 

* 비동기(Asynchronous)

->  A의 요청을 B가 즉시 주지 않아도, A는 다른 작업 처리를 할 수 있는 방식

즉, 응답을 주든 안주든 상관없이 작업 수행이 가능함


 

 

 

 

 

 

Nginx Advantages

1. 요청 처리 비용이 적음
- Event-Driven 방식을 사용하기 때문에, 비동기적으로 요청을 어플리케이션 프로그램에 전달 할 수 있고,
요청을 처리하는데에 드는 비용이 적음

 

2. 다양한 Event-Driven API feature를 지원

- Event-Driven API feature를 다양하게 지원하기때문에, 상대편 소켓이 셧다운되거나, 장애발생시 유연하게 대처함

3. 메모리 사용량이 적음

- 가볍기 때문에, 경량 서버를 운영하는데에 적극적으로 운영

 

 

 

 

 

 

 

Example of using Nginx

HTTP server
- 정적파일을 처리하는 web server의 역할
e.g: web server의 역할은 HTML, CSS, Javascript, 이미지와 같은 정보를 웹 브라우저(Chrome 등)에 전송하는 역할

 

 

Reverse proxy server

- 클라이언트는 가짜 서버에 요청(request)하면, 프록시 서버(Nginx)가 배후 서버(reverse server)로부터 데이터를 가져오는 역할

* 웹 응용프로그램 서버에 리버스 프록시(Nginx)를 두는 이유는 요청(request)에 대한 버퍼링이 있기 때문에 프록시 서버를 둠으로써 요청을 배분함

e.g : 클라이언트에서는 80포트로만 요청이 들어오는데, 들어오는 요청을 8080, 8081 등 여러 Application server로 보냄

 

Mail proxy server
- Generic TCP/UDP proxy server

반응형

댓글