나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-12-18 18:59:33

아파치 HTTP 서버


파일:httpd_logo_wide_new.png
현재 버전 2.4.62 (2024년 7월 17일)
버전 공개일
Apache 1.3 1998년 6월 6일
Apache 2 2.0 2002년 4월 6일
2.2 2005년 12월 1일
2.4 2012년 2월 21일
홈페이지 파일:홈페이지 아이콘.svg

1. 개요2. 상세3. 라이선스4. 점유율 및 한계점5. 관련문서

[clearfix]

1. 개요

Apache HTTP Server는 오픈 소스 소프트웨어 그룹인 아파치 소프트웨어 재단에서 만드는 웹 서버 프로그램이다. 팀 버너스 리가 만든 최초의 웹 서버 프로그램인 "NCSA HTTPd"를 기반으로 만들어졌다.

엄밀이 말하자면 NCSA httpd는 팀 버너스리 가 구현한 참조구현인 CERN httpd의 NCSA(National Center for Supercomputing Applications) 구현이어서 팀 버너스리가 직접만든것은 아니다.
그렇기에 팀 버너스리가 처음에 NextStep 컴퓨터 위에서 구현한 최초의 httpd는 CREN httpd 였다
이후 World Wide Web 시스템의 참조구현인 libwww api 가 퍼블릭 도메인으로 공계되어
여러 개인과 기업들이 각종 웹 서버와 웹 클라이언트 개발에 뛰어들 수 있었으며
현재의 웹의 위상까지 World Wide Web의 위상을 끌어올릴수 있었다.

NCSA도 마찬가지 였다. NCSA는 본래 슈퍼컴퓨터 자원을 여러 연구기관에서 활용할 수 있도록
여러 프로토콜과 규격을 이용해 개방하여 공적인 용도로 활용할 수 있도록 하는 기관이었다.
이중 당시 뜨기 시작했던 World Wide Web의 서버인 httpd도 지원을 위해
NCSA HTTPd를 개발하게 되었다.

NCSA의 NCSA HTTPd는 유닉스 기반으로 만들어졌기에, 아파치 HTTP 서버는 NCSA HTTPd를 리눅스에서도 돌리는 것을 목표로 만들어진 프로그램이다. 그 이후 리눅스와 함께 퍼져나갔고, 리눅스가 서버 OS의 최다 점유율을 차지하자 아파치도 자연스럽게 최다 점유율을 차지하게 되었다. 현재 거의 모든 리눅스 배포판이 이 아파치를 지원한다.

2. 상세

아파치는 확장성이 상당히 좋은데, 모듈이라는 개념으로 수많은 기능을 덧붙일 수 있다. 이 모듈을 통해 다른 프로그램과의 연동도 가능하다. 이 때문에 여러가지 서버 사이드 프로그래밍 언어DBMS와도 궁합이 잘 맞았는데, 초창기에는 Perl이 대세였고, PHP가 그 뒤를 이었다. 바로 PHP 모듈을 통해 PHP를 실행할 수도 있지만, 주로 속도 향상을 위해 PHP-FPM을 통해 PHP를 연결해서 사용한다. 좀 더 고성능을 원하는 사람은 HHVM을 쓴다.[1] 그리고 오픈소스 DBMS인 MySQL이 나오자, Apache+PHP+MySQL을 통틀어 "APM"이라고 통칭하면서 웹 서버를 돌리기 위한 기본 3종 세트 비스무레하게 되었다. 물론 다른 언어와 다른 DBMS도 지원하지만, 저 조합이 가장 인지도가 높다. JSP의 경우에도 설정이 조금 귀찮아지지만 Tomcat과 연동하여 돌릴 수 있다.

그러나 2.2 버전대에서 너무 무겁다는 평이 많아졌고, 빠른 속도를 내세운 NGINX라는 웹 서버 프로그램이 새로 나오면서 아파치의 위기가 왔다. 아파치는 Event MPM을 탑재하여 속도를 크게 개선한 2.4 버전을 내놓으면서 여기에 대응하고 있다.[2]

기능이 매우 많은 웹서버이지만 그 기능을 다 활용하는 사람이 드문 그런 프로그램이다. 확장 모듈이 매우 다양하여 간단하게 설치하고 사용 가능하지만 대부분의 사람은 이 프로그램과 PHP, MySQL만 설치하고 돌린다. 그런데 그 기능들은 NGINX에도 있고 더 빠르기 때문에, 호환성을 확인하고 옮길 수 있으면 옮기는 게 좋다.

윈도우용도 나온다. 윈도우에도 XAMPP라는 아파치 웹 서버+PHP+MySQL을 편리하게 통합해 설치할 수 있는 패키지가 나와 있다. 셋 다 윈도우용이 나오기 때문에 가능한 것. 과거에 한국에서 인기 있었던 APMSetup은 개발이 중단되었고 업데이트 서버 도메인이 만료된 후 랜섬웨어 배포처로 사용 중이기 때문에 인터넷에 설치 파일이 있어도 사용하면 안 된다. 그러나 아무래도 리눅스/유닉스 베이스로 만들어진 프로그램이다보니 윈도우에서는 제 속도가 나오지 않는다. 윈도우 버전은 서버 입문자의 디버깅 환경 구축용 혹은 PHP+MySQL 연습용 정도라고 보면 된다. 거기다 윈도우 서버에는 MS가 자체적으로 만든 인터넷 정보 서비스(IIS)가 있기 때문에, IIS에 FastCGI 모듈로 PHP를 연결시켜서 돌리는 것이 보통이다. 이 때문에 PHP의 윈도우 버전은 IIS용과 Apache/NGINX용이 따로 나온다.

3. 라이선스

라이선스는 GPL이 아닌 자체 라이선스를 쓴다. 아파치 라이선스 2.0을 따르는데, 아파치 소프트웨어 재단에서 만들었다는 사실을 밝히고 아파치 라이선스를 따르면 자유롭게 수정 및 재배포가 가능하다. 소스 공개 강제 사항도 없는 자유로운 라이선스다.

4. 점유율 및 한계점

2023년 7월 기준으로 실질적으로 작동하는 웹 사이트(active site)들에서 쓰이는 웹 서버 소프트웨어 순위는 엔진엑스(34.3%), 아파치 HTTP 서버(31.4%), LiteSpeed(12.2%) 순이다.[3] 클라우드플레어는 20.6%이지만 CDN이기 때문에 실질적 점유율로는 인정하기 힘들다.[4]

아파치 HTTP 서버의 점유율이 1위였으나 2020년대 넘어서면서부터 NGINX에게 추월당했고, HTTP/3 지원 여부가 불확실한 상태에서 LiteSpeed에게 빠르게 시장을 잠식 당하고 있다. LiteSpeed는 아파치 HTTP 서버와 호환되는 설정을 사용하는데, 빠르고 가벼우며 신기능들을 지원한다는 점을 내새워서 시장을 넓히고 있다.

5. 관련문서


[1] 하지만 PHP 7이 발표되면서 속도 면에서 HHVM은 강력한 적수를 만나게 되었다.[2] PHP로 HTTP/2를 쓰려면 Event MPM + PHP-FPM 조합을 써야 한다.[3] 세계 웹서버 시장 점유율, W3Tech[4] 클라우드플레어를 경유하는 나무위키의 경우에도 나무위키 서버 연결에 실패하면 경유지인 클라우드플레어에서 HTTP 50X 오류를 띄우지만 나무위키 서버에 연결된 상태에서 어떤 오류가 발생하면 나무위키 서버 내의 NGINX에서 오류를 띄운다.