WebServer란?
WebServer의 예시로는 Apache, NginX등이 있다. 클라이언트의 요청에 따라 HTML, CSS, JS, 이미지 파일 같은 정적파일을 응답하여 제공하는 소프트웨어를 말한다. HTTP프로토콜을 사용하여 클라이언트와 통신한다.
Was란?(Web Application Server)
Tomcat, JBoss, WebSphere등이 있다. 클라이언트의 요청에 따라 동적인 처리를 담당하는 영역. 로직을 실행한다.
요청의 흐름
WebServer와 Was를 나누는 이유
1. WAS의 부담을 줄여주기위해. 로직을 처리하는 WAS는 그 자체만으로도 할게 많다. 정적파일과 동적파일을 분리함으로써 부담을 줄일 수 있다. (최근에는 WAS의 기능이 좋아져서 굳이 나누지 않아도 되지만, 2, 3의 이유로 나누고 있다.)
2. 보안기능의 제공. 웹서버는 SSL/TLS 프로토콜을 사용해 데이터를 암호화하고 엑세스 제어, 웹 방화벽 등의 보안기능을 제공하여 웹사이트를 보호할 수 있게 한다.
3. 높은 성능. 웹서버는 대부분 비동기 처리방식을 사용하여 높은 성능을 제공한다.
AJP와 mod_jk
아파치와 톰캣이 통신할 때는 AJP나 HTTP/HTTPS통신을 사용한다. AJP는 아파치가 외부 서비스(톰캣 등) 과 연동하기위해 정한 규약(프로토콜)이다. 그리고 이를 구현한 모듈이 mod_jk이다. 과거에는 mod_jk를 이용한 통신을 주로 사용했지만, 최근에는 HTTP/HTTPS통신으로 Reverse Proxy기능을 구현한 mod_proxy를 많이 이용한다고 한다. mod_jk에 비해 설정이 간편하고, AJP같은 특정 WAS의존적인 프로토콜을 사용하지 않으므로 성능이 더 좋기 때문이다. 그 외에도 AJP프로토콜을 Reverse proxy로 사용하는 mode_proxy_ajp가 있다.
참고
'Web' 카테고리의 다른 글
[Web] 내부망? 네트워크는 어떻게 연결될까? (1) | 2024.03.22 |
---|---|
[Web] Forward Proxy와 Reverse Proxy (0) | 2024.03.20 |
[web] css 안먹을 때 해결 방법 (0) | 2023.01.06 |
[web] 스크립트 용량 줄이기, 로딩 시간 줄이기 (0) | 2022.03.12 |
[web] webpack, babel, polyfill, react에 대하여 (0) | 2022.03.12 |