Computer Science/Network

웹 서버와 웹 애플리케이션 서버에 대해

데브로그98 2024. 4. 9. 16:04

서버를 설정하는 방법에 대해 알아보자.

웹 시스템에서 성능에 영향을 주는 것은 웹 서버 세팅, WAS 서버 세팅, DB 서버 세팅, 장비 세팅이 있다.

 

WAS와 WS의 차이

WAS(웹 애플리케이션 서버)는 비즈니스 로직을 넣을 수 있고, 대표적으로 Tomcat, PHP, ASP 등이 있다.
반대로 WS(웹 서버)는 비즈니스 로직을 넣을 수 없으며 Nginx, Apache 등이 있다.

 

웹 서버(Web Server)는 클라이언트에게 요청을 받고 정적인 request을 받아 정적인 컨텐츠로 응답한다. 사용자의 접근이 많은 사이트에서는 정적인 파일들을 CDN(Content Delivery Network)이라는 서비스를 사용하여 저장한다.

웹 애플리케이션 서버(Web Application Server)는 db 조회나 서버에서 가변적인 로직을 수행하는 등의 동적인 처리가 필요한 요청을 처리하기 위해 만들어졌다.

 

왜 web server와 was를 분리해 놓은 걸까?

web server를 두는 이유는 정적인 요청까지 was가 처리하면 정적 데이터 처리로 인해 부하가 커지고, 수행 속도가 느려지게 된다. web server와 was는 port 번호가 다른데, 물리적으로 두 개의 서버를 분리하여 보안을 강화시킬 수 있다. 

웹 서버 하나에 여러 대의 was를 설치하고 로드 밸런싱을 하여 was의 부하를 더 낮춰줄 수 있다.

 

웹 서버의 Keep Alive란?

웹 서버와 웹 브라우저가 연결이 되었을 때 KeepAlive 기능이 꺼져 있으면, 매번 HTTP 연결을 맺었다 끊었다 하게 된다. HTTP는 connection less의 상태로 되어 있는데, 여러 클라이언트의 접속을 원활히 하기 위해서 서버를 계속 연결하는 방식을 채택하였다.

Persistent Connection은 요청이 처리된 후에도 close 하지 않고 재사용할 수 있다.

 

다음 요청까지의 대기 시간을 줄임으로써 네트워크 성능을 향상시킬 수 있다.