웹서버(Web Server)
- 웹 페이지가 들어 있는 파일을 사용자에게 제공하는 서버
- 시스템 소프트웨어 중 일부
- 웹서버는 웹브라우저로부터 HTTP 요청을 받아들이고, 클라이언트에게 웹 페이지를 반환하거나 프로그램을 실행하는 서버
웹 서버의 종류 .
- Apache2 : 리눅스 기반의 무료 오픈 소스 웹서버
- NginX는 2004년 러시아의 이고르 시셰프가 개발한 무료 오픈 소스 웹서버
- IIS는 Internet Information Services의 약자로서, 미국 마이크로소프트(Microsoft)사의 윈도우 시스템에서 사용
웹서버 기능
- HTTP, HTTPS, 통신기록, 인증, 정적 콘텐츠 관리, 콘텐츠 압축, 가상 호스팅, 대용량 파일 지원, 대역폭 스로틀링 기능 등을 제공
- 주요 기능은 웹 페이지를 클라이언트에게 전송하는것
- 클라이언트와 서버와의 통신은 HTTP(Hypertext Transfer Protocol)을 사용
- 가상 호스팅 : 하나의 IP 주소로 많은 웹 사이트 지원
- 서버 side 실행은 동적 웹 페이지 생성 지원
아파치 웹서버(Apache Web Server)
- 리눅스 기반의 무료 오픈소스 웹서버
- 아파치재단에서 관리
- 미국 인디언 부족인 아파치족을 존경하는 의미
- 팀 버너스 리가 만든 NCSA HTTPd를 기반
- 안정성과 확장성, 호환성이 매우좋고, 개선된 패치파일을 꾸준하게 제공
- 라이선스는 독자적인 라이선스로 자유로운 수정 및 재배포가 가능한 아파치 라이선스 2.0을 사용
- 거의 모든 운영체제에서 설치 및 사용이 가능
- 리눅스에소는 APM(Apache + PHP + MySQL)를 이용 웹서버구성의 기본제공
- 호환성, 이식성, 확장성, 안정성이 높음
- 요청 당 프로세스 또는 쓰레드가 처리하는 구조
- 요청이 많아지면 CPU와 메모리 사용량이 높아져 성능이 저하
- 성능 저하는 Keep Alive를 활성화함으로 어느정도 해결은 가능하나 대량 접속시에 효율이 급격히 떨어지는 문제점 발생
- 성능 개선을 위해 아파치2.4버전부터는 리소스 사용량이 더 적은 Event MPM을 적용
NginX 웹서버(NginX Web Server)
- 가벼움과 높은 성능을 목표
- 웹서버, 리버스프록시 및 메일프록시 기능 제공
- 이벤트 지향 아키텍처(Event-driven Architecture) 방식으로 메모리 생성 속도가 빠르고 더 작은 쓰레드로 훨씬 많은 클라이언트를 처리
- 환경 설정을 바꾸고 나서 서버 데몬을 재시작할 필요 없이 리로드(reload) 시그널을 이용 하여 실행(프로세스를 재시작할 필요가 없음)
- 아파치 웹서버가 제공하는 모든 기능을 제공(트래픽 부하 균형(load balancing), TLS/SSL 보안, 메일프록시)
- Non blocking event driven 네트워크 통신방식으로 동작
- 경량의 자원활용과 물리적인 하드웨어로 쉽게 확장이 가능
- 정적인 컨텐츠들을 빠르게 처리하는 데 있어서 매우 탁월
- 동적 처리를 별도로 담당하는 소프트웨어 스택들과 연계해서 고성능 서비스를 제공
- 동적 처리도 성능에 있어서 문제가 되지 않기 때문에 널리 사용
- NginX는 프로세스 또는 스레드 개념이 아닌, 이벤트 개념
- 단일 NginX 작업자가 동시에 수천 개의 요청을 처리 가능
- Worker가 이벤트 트리거 될 때마다 새로운 요청을 빠르게 선택할 수 있는 내부 루핑 시스템을 적용
IIS 웹서버
- 마이크로소프트 윈도우를 사용하는 서버들을 위한 인터넷 기반 서비스들의 모임
- FTP, SMTP, NNTP, HTTP/HTTPS 기능을 포함
- Microsoft에서 출시 한 NET Framework; 실제로 ASPX 스크립트는 IIS 전용
장점
- OS 이용자의 대부분이 윈도우를 사용하여 쉽게 설치가 가능
- 시각적으로 창(Window)에서 작업이 가능하여 텍스트(Text)로 작업보다 작업이 편리
- 웹 프로그램을 쉽게 설치 & 관리가 가능하고, 쉽게 설정 및 확인이 가능
단점
- 운영체제 사용이 윈도우만 가능
- OS의 서버 모드와 일반 모드( 7 / 8 / 8.1) 설치는 기능이 조금 차이 있음
ssh 란 (0) | 2022.03.30 |
---|---|
리눅스 telnet 대신 사용하는 명령어[2021.11.01] (0) | 2021.11.02 |
비전공자를 위한 네트워크 class 구분 법 2021.04.19 (0) | 2021.04.19 |
2021.02.08 unix 와 리눅스 프로그램 에서 한글 깨지는 경우 (0) | 2021.02.08 |
networing Data plane, Control plane, Management plane 이란 (0) | 2021.02.05 |
댓글 영역