웹 서버와 WAS를 분리해야 한다. 그 이유는 다음과 같다.
1. 서버 부하 방지
WAS와 웹 서버는 분리하여 서버의 부하를 방지해야 한다. WAS는 DB 조회나 다양한 로직을 처리하고, 단순한 정적 컨텐츠는 웹 서버에서 처리해줘야 한다. 만약 정적 컨텐츠까지 WAS가 처리한다면 부하가 커지게 되고, 수행 속도가 느려질 것이다.
2. 보안 강화
SSL에 대한 암호화, 복호화 처리에 웹 서버를 사용 가능
3. 여러 대의 WAS 연결 가능
로드 밸런싱을 위해 웹 서버를 사용할 수 있다. 여러 개의 서버를 사용하는 대용량 웹 어플리케이션의 경우 웹 서버와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.
4. 여러 웹 어플리케이션 서비스 가능
하나의 서버에서 PHP, JAVA 애플리케이션을 함께 사용할 수 있다.
이러한 이유로 웹 서버를 WAS 앞에 두고 필요한 WAS들을 웹 서버에 플러그인 형태로 설정하면 효율적인 분산 처리가 가능하다.
--
** Web Service Architecture
- 웹서버와 WAS 구조 종류
1. Client -> Web server -> DB
2. Client -> WAS -> DB
3. Client -> Web Server -> WAS -> DB
동작순서
1) 사용자가 url을 통해 WEB 서버를 호출하고 요청사항을 객체에 담아전송
2) WEB 서버는 요청 객체를 받아 바로 처리하거나 WAS로 객체 전달
3) WAS 서버는 요청에 대한 내용과 요청 객체를 받아 적절하게 처리
요청과 관련된 Servlet을 메모리에 올림
web.xml을 참조하여 해당 Servlet에 대한 Thread를 생성
HttpServletRequest와 HttpServletResponse 객체를 생성하여 Servlet에 전달
Thread는 Servlet의 service()메서드를 호출
service()메서드는 요청에 맞게 doGet() 또는 doPost()메서드를 호출
doGet() 또는 doPost()메서드는 인자에 맞게 생성된 적절한 동적 페이지를 Response 객체에 담아 WAS에 전달
4) WAS 서버는 처리후 결과를 응답 객체에 담아 WEB 서버로 회신
5) WEB 서버는 응답 객체를 다시 사용자에게 회신
6) 사용자의 브라우저는 WEB 서버가 보내준 코드를 해석해 화면을 구성하여 출력
참고하기
https://dataonair.or.kr/db-tech-reference/d-lounge/technical-data/?mod=document&uid=235934
WAS의 동작과 WEB, Servlet, JSP
WAS의 동작과 WEB, Servlet, JSP ㈜엑셈 컨설팅본부 /APM팀 박 종현 웹 어플리케이션 서 버란 웹 어플리케이션 서버 방식은 웹 서버가 직접 어플리케이션 프로그램을 처리하는 것이 아니 라 웹 어플리
dataonair.or.kr
출처
https://code-lab1.tistory.com/199
https://soyeondev.tistory.com/147
20220603_ClassCastException오류 (0) | 2022.11.08 |
---|---|
싱글턴 (0) | 2022.11.07 |
[book] 1일1로그 10~12 (1) | 2022.09.01 |
MiPlatform 교육 두째날 데려오기 (0) | 2022.05.06 |
스톡옵션과 연봉협상 (0) | 2021.12.28 |
댓글 영역