-Web Server -
1.Nginx와 Apache비교
-Apache
Client단에서 요청 -->> Server -->> MPM (Multi Processing Module: 다중처리모듈)방식으로 처리되며
대표적으로 Prefork, Worker방식이 있다.
Nginx와 비교를 위해 알아보자.

#Prefork mpm (왼쪽)
프로세스를 복제하여 서비스 제공. 프로세스-쓰레드 개당 부여하는 형식으로 프로세스 간에 쓰레드 공유가 없다.
개별적으로 운영하는 방식은 메모리 공유가 없어서 안정적으로 서비스 할 수 있으나 프로세스가 많아지면 메모리가 부족해 과부하로 이어짐.
#Worker mpm 방식 (오른쪽)
프로세스가 각 여러 쓰레드를 사용하며 쓰레드들이 메모리 공유함.
Prefork 방식에 비해 메모리가 여유로울 수 있음.
* 확장성이 필요한 사이트는 worker 방식을 택하고
안정성과 오래된 소프트웨어와 호환성이 필요한 경우 Prefork방식을 사용한다.
-Nginx

Event Driven 방식 사용.
요청이 들어오면 해당 요청에 대해 동작 방식을 호출하며 그 다음 다른 요청을 처리하는 방식.
apache와 달리 cpu 관계 없이 해당 방식으로 운영되어 동작에 흐름이 끊기지 않고 응답이 빠르게 진행.
1개의 프로세스로 아파치에 비해 더 빠른 동작이 가능함.
메모리 시점으로 보면 Apache에 비해 Nginx가 시스템 리소스를 더 적게 처리한다.
동시 접속 요청이 많아도 바로바로 처리하는 시스템이므로 Process 또는 Thread 생성 비용이 존재하지 않는다
- 정리 -
사용하는 서비스마다 장,단점이 존재하며
Apache의 경우,
대규모 커뮤니티가 존재, 일반적인 문제를 탐색하는 데 도움이 많이됨.
안정성 또한 뛰어남.
Nginx보다 모듈이 다양하며 동적 컨텐츠 단독 처리가 가능하다. PHP 모듈 등 직접 적재 가능.
Ngingx의 경우,
Event Driven 방식 사용으로 속도가 향상될 수 있음.
많은 접속자에 대응이 가능하며 성능이 우세하다. 허나 동적 컨텐츠를 단독 처리가 불가능 하다.
-WAS(Web Application Server)
-DB 조회나 다양한 로직 처리를 요구하는 동적 컨텐츠 제공을 위해 만들어진 Application Server
-tomcat은 java기반으로 만들어졌으며 JSP, Servlet 구동 환경을 제공하고있다.
WAS와 Web Server를 분리하는 이유
1. 기능을 분리하여 서버 부하 방지
-WAS는 DB 조회나 jsp, Servlet을 처리하는 사이 단순한 정적 컨텐츠는 Web Server단에서 빠르게 제공하는 것이 효율적.(연동 목적)
-정척 컨텐츠 요청까지 WAS가 처리할 수 있음.하지만 정척 데이터 처리로 인해 부하가 커짐 -> 동적 컨텐츠 요청까지 지연됨. --> 속도 저하 원인이 될 수 있음.
-Tomcat
톰캣은 WAS(Web Application Server)이다.
Java 기반으로 만들어졌으며 Jsp와 Servlet을 구동하기 위한 서블릿 컨테이너 역할 수행하는 어플리케이션 서버
-Servlet : 클라이언트의 요청을 받고 처리, 결과를 클라이언트에게 제공 하는 서비스
-Container : 동적인 데이터 -> 정적 서비스로 바꿔주는 모듈
아파치 와는 다르게 DB연결, 다른 응용 프로그램과 상호 작용 등 독적인 기능들을 사용할 수 있음.
아파치 (웹서버)는 정적인 데이터를 처리하는 서버이며,
톰캣 (어플리케이션 서버)는 동적 데이터를 처리하는 서버이다.
톰캣으로 단독 웹서버 없이 운영을 하거나 아파치, 엔진엑스와 연동하여 사용할 수 있다.(위에서 언급했다시피 정적인 데이터 처리를 같이하면 부하 원인이 될 수 있음.서비스가 처리하는 데이터가 많을 경우 연동 추천)
*연동하여 사용 시
: 웹서버 + was + db로 구성
(세가지 서비스 비교하여 검색 시 단독 사용 시 최신 버전에서는 별 차이가 없다는 후기도 있으며, 작은 서비스는 그냥 운영한다.라는 말도 있음. 서비스 규모에 따른 차이인 것 같다. 개발 단계에서 테스트 후 선택하여 구현하는 것이 맞다고봄.)
----------------------------------
Apache , tomcat , nginx 비교
Apache , Ngingx = https 정적 데이터 요청을 처리하는 웹서버 ->html, perl , php 처리 가능. (Web Server)
Nginx : Apache를 보완하여 만든 웹서비스. 처리 속도가 아파치에 비해 더 빠름.
Apache : 커뮤니티가 규모가 커 문제에 대해 다양한 피드백 검색 가능 및 여러 모듈을 추가하여 사용할 수 있음.
jsp사용하지 않고 php, html등으로만 구성할 경우 굳이 톰캣을 사용할 필요가 없음.
Tomcat =동적 데이터를 정적데이터로 변환하여 제공.Jsp, html 처리가능하나 php, perl 처리 불가능. (WAS Server)
jsp,html로만 구성하여 제공할 경우 톰캣 단독 사용해도됨.
jsp , html, php 모두 처리하고 싶을 경우 apahce(or nginx) + Tomcat 연동하여 사용하면 됨.
'Server > Web' 카테고리의 다른 글
| L4 로드밸런서 구축 및 활용 (0) | 2022.05.07 |
|---|---|
| linux 웹서비스 접속 느림불가 현상 원인 파악 (0) | 2022.01.15 |
| apache 웹사이트 접속자 수 확인 (0) | 2021.12.20 |
| apache error페이지 출력 설정 (0) | 2021.12.20 |
| 웹페이지 접속 시 html , jsp 우선순위 설정 (0) | 2021.11.30 |
댓글