HTTPS를 적용하기 위해서 그리고 웬만한 Backend 개발에 있어 Nginx는 한 번쯤은 무조건 들어봤을 것이다. 추가적으로 WAS, Web Server와 HTTPS관련해서 무조건 들어봤을 것이다. 그러면 도대체 WAS, Web Server 그리고 Nginx는 무엇일까?
Web Server와 WAS
Web Server와 WAS(Web Application Server)의 경우 공통적으로 클라이언트(브라우져)에서의 HTTP 요청을 받고 그 요청을 처리해 준다. 그러면 대표적인 차이가 어떤게 있을까?
여기서 딱 중요한건 한 가지다 바로 '정적'이냐 '동적'이냐의 차이다.
Web Server의 경우 정적으로 처리될 수 있는 요청들을 담당한다. 예를 들어 웹사이트의 html, 이미지, css 등의 정적이 요소들을 처리해 준다. 반면 WAS의 겨우 동적으로 처리 돼야 하는 요청들을 담당한다. 예를 들어 비즈니스 로직에 맞춰 사용자들의 개별 정보를 가져오는 요청처럼 사용자별로 달라지는 요청들을 WAS에서 담당한다.
대표적인 Web Server로는 Tomcat, Apache, Nginx등이 있다.



물론 여기서 중요한점은 Web Application Server(WAS) 안에도 Web Server가 있다. 그래서 굳이 필요하지 않을 수 있는데 왜 굳이 위에서 언급한 Web Server들이 사용될까?
Nginx
그럼 Nginx는 뭐고 어떻게 사용할까? Nginx의 경우 Web Server다. 끝
은 아니고 Nginx는 Web Server로서 HTTP 요청을 분류하고 Redirect해준다고 생각하면 된다. 그러면 이런 Nginx를 이용한 Web Server를 따로 두게 된다면 어떤 장점이 있을까?
바로 Load Balancing이다. Load Balancing의 핵심은 한개의 WAS가 모든 요청을 처리하는 게 아니라 여러 개의 WAS를 둬서 처리할 수 있도록 만드는 것이다. 그러면 이런 요청을 분산시켜 줘야 하는데 그 분산을 Nginx로 할 수 있다. 하지만 이 부분은 실제 개발에 있어 많이 호불호가 갈린다 왜냐하면 Nginx를 굳이 사용하지 않고 WAS를 여러대를 둔 다음 AWS와 같은 web service에서 재공 하는 제품을 사용하면 되기 때문이다.
그리고 추가적으로 Nginx를 통해서 기본적인 요청의 크기를 정할 수 있다. (사진과 영상을 서버를 통해 DB로 저장하려 할 때 1MB 이상 처리가 안될 때 거의 99.9% Nginx에서 설정을 안해줘서이다.)
또한 SSL/TLS 인증서에 대한 내용이 Nginx에 들어가 있다. 그래서 Nginx를 설치한 다음에 Certbot과 같은 라이브러리를 활용하면 HTTPS 가능해진다.
참고
웹 서버와 애플리케이션 서버 - 기술 서버 간의 차이점 - AWS
웹 서버와 애플리케이션 서버는 인터넷 상에서 데이터와 서비스를 교환할 수 있는 기술입니다. 클라이언트-서버 아키텍처는 인터넷의 기본 메커니즘입니다. 웹 사이트 또는 애플리케이션을 방
aws.amazon.com
difference between web server and application server
Difference Between Web server and Application server - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
* 항상 정확한 정보를 드리고 싶지만 실수가 있을 수도 있습니다!
* 실수를 찾게 되거나 질문이 있으시면 댓글 달아주세요!!
'개발일반 > 도대체' 카테고리의 다른 글
| 도대체 CI/CD는 뭘까? (1) | 2023.12.19 |
|---|---|
| 도대체 Docker는 뭘까요? (1) | 2023.12.18 |
| 도대체 M1, M2 칩 Macbook에 Tensorflow를 어떻게 설치할까요? (0) | 2023.03.15 |
| 도대체 Git은 어떻게 사용하는 걸까요?: 분업 (0) | 2023.03.14 |
| 도대체 Git은 어떻게 사용하는 걸까요? (0) | 2023.03.08 |