프로젝트를 하면서 검색할 때 Nginx가 많이 보였다. 그래서 관심이 갔지만 찾을 기회가 많지 않았다. 이번에 혼자 프로젝트를 진행하면서 여러가지 기술을 써 보고 싶어 DevOps에 관련된 스택을 공부했다.
Nginx는 '웹 서버'이다.
처음 Nginx를 봤을 때 이런 의문이 들었다.
웹 서버?
내가 지금까지 Django로 만든 코드는 웹 서버아닌가?
왜 웹 서버를 2개를 여는거지?
결론부터 말하면 Django, Nginx 모두 웹 서버라고 불린다.
하지만 정확하게 말하면 Django, Node.js등은 WAS(Web Application Server),
Nginx, Apache 등은 Web Server로 구분된다.
이 둘의 차이는 동적과 정적인 응답하는 것으로 나눌 수 있다.
처리 순서는 아래와 같다.
Client -> WS -> WAS -> DB
WAS와 WS를 나눠서 사용하는 이유는 WAS의 부담을 줄이기 위해서다.
WAS는 처리할 것이 너무 많다. 이때 Nginx가 정적인 간단한 데이터처리를 해줌으로써 WAS는 여유가 생긴다.
첫 번째 그래프를 보면 동시 접속자 수가 변해도 요청시간이 크게 변하지 않는것을 알 수 있다.
두 번째 그래프를 보면 요청량이 증가해도 메모리 사용량은 변화 없다.
- Nginx, Using NGINX and NGINX Plus as a Web Server Link
이번 프로젝트에서 Nginx를 꼭 사용할 것이다!!