Skip to content

Latest commit

 

History

History
25 lines (10 loc) · 1.71 KB

Nginx.md

File metadata and controls

25 lines (10 loc) · 1.71 KB

Nginx

내가 velog의 log부분을 보다가 Nginx라는 것이 튀어나왔다. Nginx와 log의 관련이 무엇이 있기에 나왔을까? 하면서 나의 궁금증에 찾아보고 정리해보았다.

Nginx?

Nginx란 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache 보다 동작이 단순하고, 전달자 역할만 하기 때문에 동신접속 처리에 특화되어 있다.

Apache__는 웹 서버의 한 종류로 수정, 재배포등이 가능한 오픈 소스 프로그램 입니다. 간단하게 단점을 말하자면 Apache는 클라이언트 요청 하나당 하나가 처리하는 구조입니다.(Multi Processing Module)__ 그로 인해 사용자가 많으면 스레드 생성, 메모리 및 CPU 낭비가 심합니다. (요청이 많을수록 CPU와 메모리 사용이 증가하기 때문에 성능이 저하될 수 있습니다.)

무엇이 다른 것인가?

일단 처리 방식이 다릅니다. Apache는 foke를 하거나 스레드를 생성하는 MPM 방식이지만 Nginx는 Event-Driven 방식입니다. Event-Driven 방식은 요청에 대한 각 상태를 정해서 Even가 발생할 때마다 event를 처리하는 구조 입니다.

Event-Driven 방식을 설명하기에는 내용이 어렵다. 그렇기에 자세한 내용은 구글링을 추천한다.

내가 간단하게 말하자면 요청이 들어오면 even만 보내주고 cpu가 관여하지 않는 작업이면 다른 작업을 한다. 다른 말로 말하자면 시그널을 하나 던져주고 자신이 할 일을 한다는 것이다.

여기까지 내가 궁금했던 Nginx에 대해 궁금증이 많이 풀렸다. 다른 분들도 간단하게 가볍게 보고 넘어가길 바랍니다.