백고등어 개발 블로그
웹서버와 웹 어플리케이션 서버 (WAS) 본문
728x90
웹 서버
클라이언트(웹 브라우저)로 부터 http 방식으로 요청 받아 정적인 컨텐츠를 제공해주는 프로그램이다 또 자체적으로 처리할 수 없는 동적인 자원을 웹 컨테이너로 넘겨주고 웹 컨테이너에서 처리한 결과를 다시 받아 클라이언트에게 제공해주는 역할을 합니다
웹 컨테이너
웹 서버가 보낸 동적 자원(jsp, php, asp.net 등)을 실행하고 수행 결과를 다시 웹 서버로 보내주는 역할을 합니다
대표적으로 톰캣, RESIN, 웹로직, 웹투비 등이 있습니다
웹 어플리케이션 서버(WAS)
WAS는 웹 서버와 웹 컨테이너가 합쳐진 형태로서, 웹 서버 단독으로는 처리할 수 없는 데이터베이스의 조회와 같은 동적 컨텐츠 처리를 제공한다 덕분에 사용자의 다양한 요구에 맞춰 웹 서비스를 제공할 수 있습니다
웹 서버와 WAS의 차이
웹 서버와 WA의 차이는 어떤 형태의 컨텐츠를 제공하느냐의 차이입니다
웹 서버와 WA는 각각 독립적으로 존재할 수 있습니다
대부분의 WAS는 정적인 컨텐츠를 제공해주고 있기 대문에, 웹 서버 없이 WA만 존재할 수 있습니다
그래서 WAS는 웹 서버를 포함하는 개념이라고 생각해도 될 것 같습니다
그렇다면 아래와 같은 의문점이 생길 것 같습니다
WAS가 웹 서버의 모든 기능을 수행하는데, WAS만 쓰면 되는거 아닌가? 웹 서버는 왜 사용하는거지?
1. WAS가 해야할 일의 부담을 줄이기 위해서 입니다
- WAS 앞에 웹 서버를 둬서 웹 서버에서는 정적인 컨텐츠만 처리하도록 하고, WAS는 애플리케이션의 동적인 컨텐츠만 처리하도록 역할을 분배하여, 서버의 부담을 줄이기 위한 것입니다
2. 물리적으로 분리하여 보안을 강화합니다
- SSL에 대한 암복호화 처리에 웹 서버를 사용합니다
3. WAS의 환경설정 파일을 외부에 노출시키지 않도록 하기 위해서입니다
- 클라이언트와 연결하는 포트가 직접 WAS에 연결이 되어 있다면 중요한 설정 파일들이 노출될 수 있기 때문에 WAS 설정 파일을 외부에 노출시키지 않도록 하기 위해서 웹 서버를 앞단에 배치시킵니다
- 웹 서버와 WAS에 접근하는 포트가 다르기 때문에, WAS에 들어오는 포트에는 방화벽을 쳐서 보안을 강화할 수도 있습니다
4. 여러 대의 WAS를 연결해 로드 밸런싱 용도로 사용할 수 있습니다
- 대용량 웹 어플리케이션의 경우, 웹 서버와 WAS를 분리하여 오류가 발생한 WAS를 사용하지 않고, 다른 WAS를 사용하게 만듦으로써 무중단 운영을 가능하게 합니다
5. 여러 언어의 웹 어플리케이션 서비스가 가능합니다
- 하나의 서버에서 PHP, JAVA를 함께 사용하는 등과 같이 여러 웹 어플리케이션의 활용이 가능해집니다
- WAS와 웹서버를 따로 쓰는 이유가 성능때문으로 알고 있으나, 톰캣 5.5 이상부터는 정적파일도 처리할 수 있도록 지원하고 있다 하지만 그럼에도 톰캣앞에 아파치를 두는 이유는 하나의 서버에서 php 어플리케이션과 java 어플리케이션을 함께 사용하기 위함입니다
참고
728x90
'기타 개발 지식' 카테고리의 다른 글
동시성 이슈 원인 및 해결 (2) | 2024.12.23 |
---|---|
7 Standard Actions (0) | 2021.02.03 |