웹서버 (Web Server)
웹서버는 HTTP프로토골을 기반으로 클라이언트 즉 사용자가 (웹 브라우저 또는 웹 크롤러)의 요청을
서비스 하는 기능을 담당하는 서버이다.
주로 정적인 컨텐츠 (.html, jpeg, css 등)을 제공한다.
동적인 컨텐츠도 웹서버가 제공할수있다. 동적 컨테츠를 요청받으면 WAS에 요청을 넘겨서
WAS에서 처리한 결과를 사용자에게 다시 전달해주는 역할도 한다.
가장 유명한 웹 서버 :apache
WAS
DB조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위한 서버이다.
웹 서버 기능을 구조적으로 분리하고 따로 처리하기위한 목적으로 제시되었다고 한다.
현재는 was도 정적인 컨텐츠를 처리하는데 있어서는 성능상 큰차이가 없다 하지만 기능적으로
분리를 하기도 한다고 합니다.
WAS의 예
Ex) Tomcat, JBoss, Jeus, Web Sphere 등
WAS가 Web Server의 기능도 수행이 가능한데 굳이 분리하는 이유는?
1. 앞선 말한것 처럼 기능을 분리하여 서버 부하를 방지합니다.
- 단순한 정적 컨텐츠는 web server에서 Application Server까지 가지 않고 앞단에서 빠르게 보내줄 수 있기 때문이다.
- was가 web server기능을 수행한다고 해도 동적인 컨텐츠를 제공하기 위해 존재하는 서버이기 때문이다.
2. 이부분을 잘 모르지만 보안 강화에도 이유가 있다고 합니다.
- SSL에 대한 암복호화 처리에 web server를 사용한다고 합니다.
3. WAS 여러개를 연결이 가능함
- 예를 들어, 앞 단의 Web Server에서 오류가 발생한 WAS를 이용하지 못하도록 한 후 WAS를 재시작함으로써 사용자는 오류를 느끼지 못하고 이용할 수 있다.
- 특히 대용량 웹 어플리케이션의 경우(여러 개의 서버 사용) Web Server와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.
결론은 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성 을 위해 Web Server와 WAS를 분리한다.Web Server를 WAS 앞에 두고 필요한 WAS들을 Web Server에 플러그인 형태로 설정하면 더욱 효율적인 분산 처리가
가능 해진다고 한다.
'프로그래밍' 카테고리의 다른 글
트래픽이 증가할 때 고려해야 할 사항 (0) | 2024.05.25 |
---|---|
[tomcat] 톰캣 가상 호스팅 (0) | 2023.06.06 |
쿠키(cookie) 저장 및 삭제 (0) | 2022.12.29 |
REST API 기본 (0) | 2022.10.31 |
객체지향 프로그래밍의 5가지 설계 원칙, SOLID (2) | 2022.10.22 |