on
WAS : Web Application Server
WAS : Web Application Server
WAS : Web Applicaion Server
- Web Server
- Client에서 HTTP 요청을 받고 HTML 등과 같은 페이지(JavaScript 등)를 정적으로 처리하여 반환
- 정적인 서버(Apache, Nginx 등)
- CGI : Common Gateway Interface
- 정적인 서버를 동적으로 만들기 위한 요소
- 요청받은 내용을 외부의 프로그램과 연결만 지원하고, 이외 프로그램은 별도의 Web Server가 실행
- Web Server에 들어온 Request 요청을 외부와 연결하여 요청에 대한 내용을 처리하도록 지원
- WAS와의 차이는 실행하는 주체의 차이로, CGI는 다수의 요청을 처리하기에 상대적으로 불리
- WSGI : Web Server Gateway Interface
- Python(Django) 전용 WAS
- Nginx, Apache의 Web Server는 정적인 항목(파일, 이미지 등)에 대한 처리를 수행하고,
- 동적인 항목(메일, DB 처리 등)은 Django, Flask를 이용하여 만든 Web Application이 처리
- 즉, Ngingx와 Django 간의 Interface를 정의한 것이 WSGI, 구현한 것이 uWSGI
- 정적 : Client -> Web Server
- 동적 : Client -> Web Server -> Web Application Server -> 외부 프로그램
- WSGI : Client -> Web Server -> WSGI -> 외부 프로그램
- WAS : Web Application Server
- Web Server Nginx와 Web Application Django 간의 연결과 중계를 위한 WSGI가 존재
- Ngingx는 Python에 대한 부분을 알 수 없기 때문에 uWSGI는 HTTP의 요청에 대하여 알 수 있도록 변환
- 즉, WAS = Web Server + CGI로 WAS도 정적인 데이터에 대한 처리가 가능
- 하지만, Server와 Application을 분리하는 것이 효율적이기 때문에 규모가 클수록 분리
Web Server & Web Application Server
- Web Server
- 정적인 데이터만 처리하는 Server
- 단순 HTML 또는 이미지와 같은 리소스를 제공한다면, Web Server를 통하는 것이 더욱 빠르고 안정적
- Web Application Server
- 동적인 데이터를 처리하는 Server
- 데이터베이스(DB)와 연결되어 데이터를 주고받거나 조작이 필요한 경우에 사용
- 접속자가 많은 서비스인 경우 처리량이 다른 요소에 비하여 효율적
728x90
from http://alpha-star.tistory.com/123 by ccl(A) rewrite - 2021-05-05 18:00:19