평소에 웹서버와 WAS 서버를 혼용해서 용어 사용을 하고있었던 터라
WAS 와 웹서버에 대한 차이점에 대해서 포스팅을 하려고 마음을 먹었다.
마지막 포스팅은 테스트 WAS 서버를 만들어보는 포스팅이었는데,
그때는 WAS 서버가 로컬서버의 반댓말인지 알았다.
내 피씨에서만 접속할수 있으면 : 로컬서버
네트워크 대역대 공유하는 사람들이 전부 접속 가능하면: WAS 서버
하지만, 정확한 개념은 다음과 같다.
- 웹 서버는 정적인 컨텐츠( html, css, js )를 제공하는 서버
- ex) Apache, Nginx
- WAS는 DB 조회나, 어떤 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서버
- ex) Tomcat, Jeus
그렇다면 내가 테스트 WAS 서버를 구축했는데 , 그것은 웹서버와 WAS 서버가 같이 작동하고 있는것이었다.
그렇다면 왜 웹서버와 WAS 서버를 분리해서 둘다 사용을 할까? 라는 궁금증이 생길것이다.
1) WAS가 해야 할 일의 부담을 줄이기 위해서
WAS 앞에 웹 서버를 둬서 웹 서버에서는 정적인 문서만 처리하도록 하고, WAS는 애플리케이션의 로직만 수행하도록 기능을 분배하여 서버의 부담을 줄이기 위한 것
그렇다면, 내가 테스트 WAS 서버를 구축한것은 사실상 웹서버만 구축을 한것이지 않은가?
실제로 db를 조회하고 로직들을 처리하는 동적인 컨텐츠는 어디서 제공하고 있는것이지? ---> 의문이 생겼다.
2) WAS의 환경설정 파일을 외부에 노출시키지 않도록 하기 위해서
클라이언트와 연결하는 포트가 직접 WAS에 연결이 되어 있다면 중요한 설정 파일들이 노출될 수 있기 때문에 WAS 설정 파일을 외부에 노출시키지 않도록 하기 위해서 웹 서버를 앞단에 배치시킵니다.
웹 서버와 WAS에 접근하는 포트가 다르기 때문에, WAS에 들어오는 포트에는 방화벽을 쳐서 보안을 강화할 수도 있습니다. 실제로 WAS에는 방화벽을 쳐서 차단할수 있다.
참조)
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
'개발스터디 > 스프링 스터디 (20년)' 카테고리의 다른 글
[프로젝트 개발환경 설치] (0) | 2021.06.27 |
---|