아파치 웹서버
아파치 웹서버(Apache Web Server)는 리눅스 기반의 무료 오픈소스 웹서버 소프트웨어이다. 아파치재단에서 관리하고 있다. 아파치(Apache)는 미국 인디언 부족인 아파치족을 존경하는 의미를 담아서 만든 말이다. 로고는 아파치족이 머리에 꽂는 깃털이다. 나중에 아파치(Apache)는 "A Patchy Web Server"의 약자라는 설명(backronym)이 뒤늦게 생겨났다.
개요
아파치 웹서버는 고성능의 HTTP 서버이며, 팀 버너스 리가 만든 NCSA HTTPd를 기반으로 만들어졌다. 안정성과 확장성, 호환성이 매우좋고, 개선된 패치파일을 꾸준하게 제공하고 있었기 때문에 월드와이드웹 서버용 소프트웨어로 전세계에서 가장 높은 점유율을 가지고 있었다. 라이선스는 독자적인 라이선스로 자유로운 수정 및 재배포가 가능한 아파치 라이선스 2.0을 사용한다.
아파치 웹서버란, 정식 이름은 아파치 HTTP 서버(Apache HTTP Server) 지만 아파치 서버로 많이 알려져 있다. 프로그램의 이름은 httpd이며 HTTP 데몬(daemon)이라는 의미다. 세계에서 가장 많이 쓰는 웹 서버 중 하나이며, 오픈 소스 소프트웨어 그룹인 아파치 소프트웨어 재단에서 만든 HTTP 웹 서버다. 팀 버너스 리가 유닉스 기반으로 만든 최초의 웹 서버 프로그램인 NCSA HTTPd를 기반으로 만들어졌다. 아파치 웹 서버는 NCSA HTTPd를 리눅스에서도 돌리는 것을 목표로 만들어진 프로그램이다. 그래서 윈도우 서버보단 리눅스 서버에서 더 지원이 잘 되지만 C로 작성해서 유닉스 계열뿐 아니라 마이크로소프트 윈도우나 노벨 넷웨어 같은 다양한 운영체제에 이식되어 설치해서 사용할 수 있다. 따라서 현재 나와있는 대부분의 개인용 또는 서버용 운영체제를 지원한다. 그 이후 리눅스와 함께 퍼져나갔고, 리눅스가 서버 OS의 최다 점유율을 차지하자 아파치도 자연스럽게 최다 점유율을 차지했으며 다양한 추가 기능에, 구축이 쉽다는 이유 때문에 많이 쓰고 있다. 현재 거의 모든 리눅스 배포판이 이 아파치를 지원한다. 하지만 아파치 자체만으로 엄청 무겁고, 스퀴드(Squid)와 함께 슬로리스(Slowloris) 취약점이 발견되었기에, 보통 프로그래밍 능력이 능숙한 사람들이나, 대형 사이트 운영자는 엔진엑스(Nginx), 인터넷 정보 서비스(IIS)를 주로 쓰고 있지만 대부분의 중소기업들은 무료이기 때문에 많이 쓰인다. 그렇다고 웹호스팅이나 소규모 웹사이트에만 사용하는 것은 아니다. 대규모 엔터프라이즈에서도 사용되며 오히려 거대 규모 웹서버 시장 점유율은 아파치가 더욱 막강하며 금융권을 비롯해서 안정성과 보안이 중요한 곳에서도 아파치를 사용한다. 상용 소프트웨어를 능가하는 오픈소스 소프트웨어의 좋은 예시 중 하나다. 1995년에 나왔는데도 2020년인 현재까지 최신 버전은 2.4.x다. 실제 운영중인 웹사이트 중에는 지금까지도 아파치 1.x 대에 머물러 있는 곳도 있다. 너무 기능 추가나 발전이 없는 거 아닌가 싶기도 하겠지만, 그만큼 안정화가 잘 되어 있는 서버라는 뜻일 수도 있다. 사실 아파치 서버 자체는 웹 서버로서 아주 기본적인 기능만 수행하는 것이고, PHP를 비롯해서 동적 웹 페이지를 만드는 기능이라든가 하는 대부분의 발전된 기능은 외부 모듈을 붙여서 구현한다. 오랜 역사와 높은 시장 점유율 덕분에 이러한 외부 모듈이 많고, 안정화도 잘 되어 있는 것이 아파치를 찾게 되는 주된 이유 중 하나다. 기본적으로 80포트로 연결되며, Apache_HOME/bin/httpd.bat 같은 배치파일을 실행하거나, 서비스로 등록하여 서비스로 실행시키면 된다. 정적인 페이지를 보여주는 역할을 수행하는 데 적합하다.[1] [2]
역사
1995년에 처음 공개된 월드와이드웹 서버용 소프트웨어이며,그 기반은 NCSA 소속개발자들이 개발한 NCSA HTTPd에 두고있다.
2019년 6월 기준으로 Nginx가 9%차이로 점차 점유율을 높이는 중이다. 아파치(29.39%), Nginx(20.55%), Google(8.36%), Microsoft(5.97%)[3]
주요 인물
- 브라이언 벨렌도르프(Brian Behlendorf) : 아파치 웹서버를 개발했고, 아파치재단의 회장을 지냈다. 블록체인 기반의 하이퍼레저 프로젝트의 최고책임자이다.
특징
아파치 웹서버는 무료 오픈소스이고, 리눅스, 유닉스, 윈도우뿐만 아닌 거의 모든 운영체제에서 설치 및 사용이 가능하며, 리눅스 운영체제에서의 APM(Apache + PHP + MySQL)은 웹서버구성의 기본으로 받아들여질 정도이다. 아파치 서버는 호환성, 이식성, 확장성, 안정성이 높아서 웹서버에서 많이사용한다. 아파치는 요청 당 프로세스 또는 쓰레드가 처리하는 구조이며, 요청이 많아지면 CPU와 메모리 사용량이 높아져 성능이 저하될수있다. 이 문제들은 Keep Alive를 활성화함으로 해결할 수 있지만 대량 접속시에 효율이 급격히 떨어지는 문제점이 발생한다. 이를 개선하기 위해 아파치2.4버전부터는 리소스 사용량이 더 적은 Event MPM을 적용하게되었다.[4]
아파치는 확장성이 상당히 좋은데, 모듈이라는 개념으로 수많은 기능을 덧붙일 수 있다. 이 모듈을 통해 다른 프로그램과의 연동도 가능하다. 이 때문에 여러 가지 서버 사이드 프로그래밍 언어나 데이터베이스 관리 시스템과도 궁합이 잘 맞았는데, 초창기에는 펄(Perl)이 대세였고, 피에이치피(PHP)가 그 뒤를 이었다. 바로 피에이치피 모듈을 통해 피에이치피를 실행할 수도 있지만, 주로 속도 향상을 위해 PHP-FPM을 통해 피에이치피를 연결해서 사용한다. 좀 더 고성능을 원하는 사람은 힙합 가상 머신(HHVM)을 쓴다. 그리고 오픈소스 데이터베이스 관리 시스템인 마이에스큐엘(MySQL)이 나오자, APM(Apache+PHP+MySQL)이라고 통칭하면서 웹 서버를 돌리기 위한 기본이 되었다. 물론 다른 언어와 다른 데이터베이스 관리 시스템도 지원하지만, 저 조합의 인지도가 가장 높다. 자바서버 페이지(JSP)의 경우에도 설정이 조금 귀찮아지지만 톰캣과 연동하여 돌릴 수 있다. 라이선스는 GPL이 아닌 자체 라이선스를 쓴다. 아차피 라이선스 2.0을 따르는데, 아파치 소프트웨어 재단에서 만들었다는 사실을 밝히고 아파치 라이선스를 따르면 자유롭게 수정 및 재배포가 가능하다. 소스 공개 강제 사항도 없는 자유로운 라이선스다. 그러나 2.2 버전대에서 너무 무겁다는 평이 많아졌고, 빠른 속도를 내세운 엔진엑스라는 웹 서버 프로그램이 새로 나오면서 아파치의 위기가 왔다. 아파치는 이벤트 엠피엠(Event MPM)을 탑재하여 속도를 크게 개선한 2.4버전을 내놓으면서 여기에 대응하고 있다. 기능이 매우 많은 웹서버이지만 그 기능을 다 활용하는 사람이 드문 그런 프로그램이다. 확장 모듈이 매우 다양하여 간단하게 설치하고 사용 가능하지만 대부분의 사람은 이 프로그램과 PHP, 마이에스큐엘만 설치하고 돌린다. 그리고 그 기능들은 엔진엑스에도 그대로 존재하고, 더 빠르다. 호환성을 확인하고 옮길 수 있으며 옮기는 게 좋다. 윈도우용도 나온다. 윈도우에도 크로스 플랫폼 웹 서버 자유 소프트웨어 꾸러미(XAMPP)나 에이피엠셋업(APMSetup) 등의 APM을 편리하게 통합해 설치할 수 있는 패키지가 나와 있다. 아파치 웹 서버, 피에이치피, 마이에스큐엘 전부 윈도우용이 나오기 때문에 가능한 것이다. 그러나 리눅스/유닉스 베이스로 만들어진 프로그램이다 보니 윈도우에서는 제 속도가 나오지 않는다. 윈도우 버전은 서버 입문자의 디버깅 환경 구축용 혹은 피에이치피+마이에스큐엘 연습용 정도라고 보면 된다. 거기다 윈도우 서버에는 마이크로소프트가 자체적으로 만든 인터넷 정보 서비스가 있기 때문에, 인터넷 정보 서비스에 FastCGI 모듈로 피에이치피를 연결해서 돌리는 것이 보통이다. 이 때문에 피에이치피의 윈도우 버전은 인터넷 정보 서비스용과 아파치용(엑스엔진용)이 따로 나온다.[2]
버전
Apache
- 1998년 06월 06일 - Ver.1.3
- 2010년 02월 03일 - Ver.1.3.42
Apache2
- 2002년 02월 03일 - Ver.2.0
- 2005년 12월 01일 - Ver.2.2
- 2012년 02월 21일 - Ver.2.4
- 2013년 07월 10일 - Ver.2.0.65
- 2017년 07월 11일 - Ver.2.2.34
- 2018년 03월 17일 - Ver.2.4.33
- 2018년 07월 16일 - Ver.2.4.34
- 2019년 04월 01일 - Ver.2.4.39
문제점
문제점들을 개선하기위해 아파치2.4부터 Event MPM을 적용했다고 해도, Event Driven을 사용하여 리소스 사용량이 적은Nginx보다 떨어지는 성능과, 대량접속에도 적은 리소스를 사용하며 빠르게 서비스를 요구하는 웹사이트가 늘어남으로 인해서 아파치는 하락세를 타고있으며, 경량화서버인 Niginx가 시장 점유율을 점차 늘려가고있다.
평가 및 전망
엔진엑스(Nginx)가 성능상의 장점을 가지고 있다고 하지만, 아파치 웹서버는 여전히 높은 서버 시장점유율과 안정성, 호환성, 확장성을 가지고 있다. 아파치 웹서버가 현재 최우선 과제로 삼고있는 성능 개발 목표를 달성하고, 지속적으로 버전 패치를 해준다면 다시 시장 점유율을 늘려갈 수 있을 것으로 기대하고 있다.
각주
- ↑ 서버이야기, 〈아파치(apache)와 톰캣란?〉, 《티스토리》, 2017-01-16
- ↑ 2.0 2.1 아파치 HTTP 서버 나무위키 - 아파치 HTTP 서버
- ↑ Web Server Survey, 〈June 2019 Web Server Survey〉, 《Netcraft》, 2019-06-17
- ↑ 아파치 공식 홈페이지, 〈Overview of new features in Apache HTTP Server 2.4〉
참고자료
- 아파치 공식 홈페이지, 〈Overview of new features in Apache HTTP Server 2.4〉
- 아파치 HTTP 서버 나무위키 - 아파치 HTTP 서버
- 서버이야기, 〈아파치(apache)와 톰캣란?〉, 《티스토리》, 2017-01-16
- Web Server Survey, 〈June 2019 Web Server Survey〉, 《Netcraft》, 2019-06-17
같이 보기