문서의 각 단락이 어느 리비전에서 마지막으로 수정되었는지 확인할 수 있습니다. 왼쪽의 정보 칩을 통해 작성자와 수정 시점을 파악하세요.

아파치 HTTP 서버 | |
개발/관리 | 아파치 소프트웨어 재단 |
최초 기반 | NCSA HTTPd |
주요 용도 | 웹 서버 |
라이선스 | 아파치 라이선스 2.0 |
현재 안정 버전 | 2.4.66[1] |
주요 특징 | 모듈 기반 확장성 오픈 소스 다중 플랫폼 지원 |
버전 및 기술 정보 | |
주요 버전 역사 | Apache 1.3: 1998년 6월 6일 Apache 2.0: 2002년 4월 6일 Apache 2.2: 2005년 12월 1일 Apache 2.4: 2012년 2월 21일 |
주요 연동 기술 | PHP (PHP-FPM, HHVM) MySQL (APM 조합) JSP (Tomcat 연동) |
대표적인 패키지 | XAMPP (윈도우 포함 다중 플랫폼) APMSetup[2] |
주요 경쟁 소프트웨어 | NGINX |
속도 개선 대응 | 2.4 버전에 Event MPM 탑재 |
홈페이지 | https://httpd.apache.org/ |

아파치 HTTP 서버는 아파치 소프트웨어 재단에서 개발 및 관리하는 오픈 소스 웹 서버 소프트웨어이다. 최초의 웹 서버 프로그램 중 하나인 NCSA HTTPd를 기반으로 만들어졌으며, 리눅스를 포함한 다양한 운영 체제에서 동작하는 다중 플랫폼 지원이 주요 특징이다.
이 서버의 핵심 설계 철학은 모듈 기반 확장성에 있다. 사용자는 필요한 기능에 따라 다양한 모듈을 로드하거나 비활성화하여 서버를 자유롭게 구성할 수 있으며, 이를 통해 PHP나 Perl 같은 서버 사이드 스크립트 언어와의 연동이 용이하다. 현재 안정 버전은 2.4.66[3]이다.
아파치 HTTP 서버는 아파치 라이선스 2.0 하에 배포된다. 이 라이선스는 상업적 이용과 수정, 재배포에 제한이 적은 자유로운 조건을 제공하며, 소스 코드 공개를 강제하지 않는다는 점이 특징이다. 이러한 개방성과 유연성 덕분에 초기 인터넷의 성장과 함께 급속히 보급되었다.
XAMPP와 같은 통합 패키지를 통해 손쉽게 설치 및 테스트 환경을 구성할 수 있어, 웹 개발 입문자들에게도 널리 사용된다. 또한, 서버 성능을 테스트하는 도구인 ApacheBench를 기본으로 포함하고 있다.

아파치 HTTP 서버의 기원은 1990년대 초반으로 거슬러 올라간다. 이 소프트웨어는 NCSA HTTPd라는 초기 웹 서버 프로그램을 직접적인 기반으로 만들어졌다. NCSA HTTPd는 NCSA(National Center for Supercomputing Applications)에서 개발한 유닉스 기반의 웹 서버로, 당시 널리 사용되던 프로그램이었다. 그러나 NCSA HTTPd의 핵심 개발이 중단되면서, 이를 사용하던 사용자와 개발자들은 기능 개선과 유지보수를 위해 협력하기 시작했다.
이러한 협력의 결과로, NCSA HTTPd의 소스 코드를 포크(fork)하여 여러 패치(patch)를 적용한 새로운 버전이 만들어졌다. "아파치(Apache)"라는 이름은 "A Patchy Server"라는 말장난에서 유래했다고 알려져 있으며, 이는 여러 패치가 적용된 서버라는 의미를 담고 있다. 초기 개발자들은 버그 수정과 기능 향상을 위한 패치들을 공유하며 프로젝트를 이끌어 나갔다.
1995년에 공식적으로 아파치 HTTP 서버 1.0이 출시되었다. 이 프로젝트는 빠르게 커뮤니티 중심의 협력 개발 모델을 구축했으며, 이는 이후 아파치 소프트웨어 재단의 설립으로 이어졌다. 아파치 HTTP 서버는 리눅스를 포함한 다양한 유닉스 계열 운영체제에서도 잘 동작하도록 개발되었고, 이는 오픈 소스 운동의 성장과 맞물려 웹 서버 시장에서 압도적인 점유율을 차지하는 데 기여했다.
아파치 HTTP 서버의 주요 버전은 크게 1.x 시리즈와 2.x 시리즈로 구분된다. 초기 버전은 NCSA HTTPd의 소스 코드를 기반으로 패치(patch)를 적용하는 방식으로 개발되어 'A PAtCHy server'라는 유래에서 이름이 붙었다. 1.x 버전대는 초기 웹의 확산과 함께 리눅스 서버 환경에서 사실상의 표준 웹 서버로 자리 잡았다.
주요 2.x 버전의 연혁은 다음과 같다.
연도 | 주요 버전 | 비고 |
|---|---|---|
2002년 | 아파치 2.0 | 다중 프로세싱 모듈(MPM) 도입 등 주요 구조 개편 |
2005년 | 아파치 2.2 | 성능 및 모듈 API 안정화 |
2012년 | 아파치 2.4 | Event MPM 도입으로 동시 접속 처리 성능 개선[4] |
2.4 버전은 NGINX와 같은 경쟁 서버에 대응하기 위해 비동기 이벤트 기반 처리 모델을 강화한 Event MPM을 본격적으로 지원하며 성능을 크게 향상시켰다. 이 버전대는 현재까지도 활발히 유지보수되며, 최신 안정 버전은 2025년 12월에 공개된 2.4.66이다. 각 주요 버전은 하위 호환성을 유지하면서 새로운 기능과 보안 업데이트를 지속적으로 제공해 왔다.

아파치 HTTP 서버의 가장 두드러진 특징은 모듈 기반 확장성이다. 이 설계는 서버의 핵심 기능을 최소한으로 유지하면서, 다양한 추가 기능을 필요에 따라 동적으로 로드하거나 비활성화할 수 있게 한다. 사용자는 웹 서버의 기본 기능만 사용하거나, 인증, URL 재작성, 캐싱, 보안 강화, 특정 프로그래밍 언어 연동 등 수백 가지에 이르는 모듈을 조합하여 맞춤형 서버 환경을 구축할 수 있다.
이러한 모듈 구조는 아파치 소프트웨어 재단과 제3자 개발자들에 의해 지속적으로 개발되어 왔다. 대표적인 예로, PHP 스크립트를 처리하는 mod_php, Perl 스크립트를 위한 mod_perl, SSL/TLS 암호화를 제공하는 mod_ssl 등이 있다. 또한 리버스 프록시, 로드 밸런싱, 콘텐츠 압축과 같은 고급 기능도 모듈을 통해 구현된다.
모듈 기반 아키텍처는 관리의 유연성을 제공한다. 시스템 관리자는 서버를 재시작하지 않고도 특정 모듈을 활성화하거나 비활성화할 수 있으며, 이는 서비스 중단 없이 기능을 테스트하거나 보안 패치를 적용하는 데 유리하다. 이 확장성 덕분에 아파치는 단순한 정적 콘텐츠 제공을 넘어서 복잡한 웹 애플리케이션과 동적 웹사이트를 호스팅하는 데 널리 사용될 수 있었다.
그러나 이러한 모듈식 구조는 때로는 단점으로 작용하기도 한다. 필요하지 않은 모듈까지 모두 로드할 경우 메모리 사용량이 증가하고 성능에 부정적인 영향을 미칠 수 있다. 이는 경쟁사인 NGINX가 등장하며 지적받은 주요 한계점 중 하나였으며, 아파치가 이후 MPL을 도입하고 성능 최적화에 주력하는 계기가 되었다.
MPL은 아파치 HTTP 서버의 핵심 구조 중 하나로, 멀티프로세싱 모듈(Multi-Processing Module)의 약자이다. 이는 서버가 클라이언트의 요청을 처리하는 방식을 정의하는 모듈로, 운영체제와 하드웨어 환경에 최적화된 처리 모델을 선택할 수 있게 해준다. 사용자는 서버의 설정 파일에서 원하는 MPM을 선택하여 성능과 자원 사용량을 세밀하게 조정할 수 있다.
주요 MPM으로는 prefork, worker, event 모듈이 있다. 전통적인 prefork MPM은 요청마다 별도의 자식 프로세스를 생성하는 방식으로, 각 프로세스가 단일 스레드로 동작한다. 이 방식은 스레드 안전하지 않은 라이브러리를 사용하는 구형 모듈과의 호환성을 위해 주로 사용된다. worker MPM은 멀티프로세스-멀티스레드 하이브리드 모델을 사용하여, 여러 자식 프로세스가 각각 여러 작업 스레드를 생성한다. 이는 메모리 사용량을 줄이면서 더 많은 동시 연결을 처리할 수 있도록 설계되었다.
가장 발전된 모델은 event MPM이다. 이는 기본적으로 worker MPM과 유사하지만, 지속적인 연결을 처리하는 방식을 개선했다. event MPM은 특정 스레드를 연결 감시 전용으로 할당하여, 데이터를 기다리는 동안 다른 요청을 동일한 스레드에서 처리할 수 있게 한다. 이 비동기식 이벤트 처리 방식을 통해 특히 많은 수의 동시 연결을 유지해야 하는 경우에 성능이 크게 향상되었다. 아파치 HTTP 서버 2.4 버전부터 event MPM이 안정화되었으며, NGINX와 같은 경쟁 서버의 비동기 아키텍처에 대응하는 중요한 성능 개선 요소가 되었다.

아파치 HTTP 서버의 핵심 기능은 정적 콘텐츠를 효율적으로 제공하는 기본적인 웹 서버 역할에 기반한다. 이는 HTML 문서, 이미지, CSS, 자바스크립트 파일과 같은 웹 페이지를 구성하는 자원을 인터넷을 통해 클라이언트에 전송하는 것을 말한다. 서버는 HTTP 및 HTTPS 프로토콜을 처리하여 요청을 받고 적절한 응답을 반환하는 데 중점을 둔다.
이러한 기본 기능은 다양한 모듈을 통해 크게 확장된다. 예를 들어, mod_rewrite 모듈은 강력한 URL 재작성 엔진을 제공하여 복잡한 주소 체계를 관리하고, mod_ssl 모듈은 SSL/TLS 암호화를 구현하여 보안 통신을 가능하게 한다. 또한, mod_deflate 같은 모듈은 콘텐츠 압축을 통해 대역폭 사용을 줄이고 페이지 로딩 속도를 향상시킨다.
가상 호스팅 기능은 아파치의 중요한 핵심 기능 중 하나이다. 단일 서버 인스턴스에서 여러 개의 독립적인 웹사이트나 도메인을 호스팅할 수 있게 해주며, 이는 IP 기반과 이름 기반 가상 호스트로 구분된다. 이를 통해 호스팅 비용과 자원을 절약할 수 있다. 로깅과 모니터링을 위한 기능도 잘 갖추어져 있어, 접근 로그와 오류 로그를 상세히 기록하고 사용자 정의할 수 있다.
성능과 자원 관리를 위해 다양한 MPL이 제공된다. 가장 널리 쓰이는 prefork MPM은 각 요청을 별도의 프로세스로 처리하여 안정성을 중시하며, worker나 event MPM은 스레드를 활용하여 대량의 동시 연결을 더 효율적으로 처리하도록 설계되었다. 이러한 핵심 기능들의 조합을 통해 아파치는 높은 유연성과 안정성을 제공하는 오픈 소스 웹 서버 솔루션으로 자리 잡았다.
아파치 HTTP 서버는 모듈 기반의 확장성을 통해 다양한 서버 사이드 프로그래밍 언어와의 연동을 지원한다. 이를 통해 정적인 HTML 문서를 제공하는 기본적인 웹 서버의 역할을 넘어, 동적인 웹 애플리케이션을 실행하는 플랫폼으로서의 기능을 수행한다.
초기에는 Perl 언어와의 연동이 널리 사용되었으나, 이후 PHP가 웹 개발의 주류 언어로 부상하면서 아파치와의 조합이 매우 일반화되었다. 아파치는 mod_php 모듈을 통해 PHP 코드를 직접 처리할 수 있으며, 더 높은 성능과 자원 관리 효율을 위해 PHP-FPM과의 연동도 널리 채택되고 있다. 이러한 아파치 HTTP 서버, PHP, MySQL의 조합은 APM이라는 통칭으로 불리며 리눅스 기반 웹 호스팅 환경의 사실상의 표준 구성을 이루었다.
JSP 기반의 자바 애플리케이션을 실행하기 위해서는 아파치 톰캣과 같은 별도의 서블릿 컨테이너가 필요하다. 아파치는 mod_jk 또는 mod_proxy 모듈을 활용하여 톰캣과 연동하여 요청을 전달하는 구조로 구성된다. 이 외에도 파이썬을 위한 mod_wsgi, 루비를 위한 mod_passenger 등 다양한 언어를 위한 공식 및 서드파티 모듈이 존재하여 광범위한 개발 스택을 지원한다.
이러한 유연한 연동 구조는 아파치 HTTP 서버가 다양한 기술 환경에서 장기간 사용될 수 있는 기반이 되었다. 그러나 모듈을 통한 내장 처리 방식은 때로는 NGINX와 같은 경쟁사의 경량화 설계에 비해 자원 소모가 크다는 평가를 받기도 한다.
ApacheBench는 아파치 HTTP 서버에 포함된 명령줄 인터페이스 기반의 성능 테스트 도구이다. 이 도구는 주로 웹 서버나 웹 애플리케이션의 처리 성능과 동시 접속 처리 능력을 측정하는 데 사용된다. 리눅스와 윈도우를 포함한 다양한 플랫폼에서 동작하며, 아파치 소프트웨어 재단에서 개발 및 관리한다.
ApacheBench의 기본적인 사용법은 ab 명령어에 옵션과 대상 URL을 지정하는 것이다. 주요 옵션으로는 -n으로 총 요청 수를, -c로 동시에 처리할 요청의 수(동시 접속자 수)를 설정할 수 있다. 예를 들어, ab -n 1000 -c 100 http://example.com/ 명령어는 해당 URL에 대해 총 1000번의 요청을 100개의 동시 접속으로 나누어 보내 성능을 측정한다.
이 도구를 실행하면 초당 처리량, 요청당 평균 처리 시간, 다양한 퍼센타일의 응답 시간 등 상세한 벤치마크 결과를 제공한다. 이를 통해 서버의 부하 테스트를 수행하거나, 설정 변경이나 코드 수정이 성능에 미치는 영향을 객관적으로 비교 분석할 수 있다. ApacheBench는 설정이 간단하고 결과 해석이 직관적이어서 개발자와 시스템 관리자가 널리 활용하는 도구이다.

아파치 HTTP 서버는 아파치 소프트웨어 재단이 관리하며, 아파치 라이선스 2.0을 적용하여 배포된다. 이 라이선스는 자유 소프트웨어 라이선스의 일종으로, 사용자에게 매우 자유로운 권한을 부여하는 것이 특징이다.
아파치 라이선스 2.0은 GPL과 같은 카피레프트 조항을 포함하지 않는다. 따라서 이 라이선스 하의 소프트웨어를 수정하거나 재배포할 때 수정된 소스 코드를 공개할 의무가 없다. 사용자는 아파치 라이선스 소프트웨어를 자유롭게 사용, 수정, 배포할 수 있으며, 상용 소프트웨어에 포함시켜 판매하는 것도 가능하다.
라이선스의 주요 조건은 소프트웨어를 재배포할 때 원본 라이선스 텍스트와 고지 사항을 유지해야 하며, 수정된 파일에는 이를 명시해야 한다는 점이다. 또한, 아파치 라이선스 2.0은 특허권을 명시적으로 부여하여, 기여자가 보유한 관련 특허를 사용자에게 로열티 없이 사용할 수 있는 권리를 제공한다.
이러한 자유로운 라이선스 정책은 아파치 HTTP 서버가 오픈 소스 커뮤니티와 상용 환경 모두에서 광범위하게 채택되는 데 기여했다. 많은 리눅스 배포판과 XAMPP 같은 통합 개발 패키지가 이 라이선스에 따라 아파치를 기본 포함하여 배포하고 있다.

아파치 HTTP 서버는 1990년대 중반부터 2010년대 초반까지 전 세계 웹 서버 시장에서 압도적인 점유율을 유지하며 사실상의 표준으로 군림했다. 이는 초기 인터넷의 성장과 리눅스 운영 체제가 서버 시장에서 주류가 되는 과정과 맞물려 있었다. 특히 LAMP 스택(리눅스, 아파치, MySQL, PHP)의 인기는 아파치의 시장 지배력을 공고히 하는 데 크게 기여했다.
그러나 2010년대 중반을 기점으로 시장 지형은 빠르게 변화하기 시작했다. 경량화와 높은 동시 접속 처리 성능을 강점으로 내세운 NGINX가 부상하며, 특히 고트래픽 웹사이트와 리버스 프록시 시장에서 아파치의 점유율을 빠르게 잠식했다. 이에 따라 2019년을 전후하여 NGINX가 전체 활성 웹사이트 기준 시장 점유율 1위를 차지하게 되었다.
2020년대 중반 현재, 실질적으로 작동하는 웹사이트에서의 점유율은 NGINX가 약 33.0%로 선두를 달리고 있으며, 아파치 HTTP 서버는 약 24.3%로 그 뒤를 잇고 있다. 최근에는 HTTP/3과 같은 최신 프로토콜을 빠르게 지원하는 LiteSpeed 웹 서버도 약 14.9%의 점유율로 빠르게 성장하며 새로운 경쟁자로 부상하고 있다. 이러한 추세는 현대 웹 환경이 정적 콘텐츠 제공, 마이크로서비스 아키텍처, 클라우드 컴퓨팅에 최적화된 가볍고 빠른 솔루션을 선호함을 보여준다.
아파치 HTTP 서버는 오랜 기간 웹 서버 시장을 주도했으나, 2020년대에 들어서면서 NGINX에게 점유율 1위 자리를 내주었다. 2026년 기준 실질 작동 웹사이트에서의 점유율은 NGINX가 약 33.0%로 선두를 달리고 있으며, 아파치는 약 24.3%로 뒤쳐진 상태이다. 이 추세는 경량화와 고성능에 중점을 둔 현대 웹 트래픽 환경에서 아파치의 전통적인 아키텍처가 한계를 드러냈기 때문이다.
가장 큰 비교 요소는 연결 처리 방식이다. 아파치는 전통적으로 요청당 하나의 프로세스 또는 스레드를 생성하는 접근법(프리포크, 워커 MPM)을 사용한다. 이 방식은 각 연결이 독립된 메모리 공간을 차지하기 때문에 동시 접속자가 많아질수록 시스템 메모리와 CPU 자원을 빠르게 소모하는 단점이 있다. 반면 NGINX는 비동기 이벤트 기반 아키텍처를 채택하여 적은 수의 프로세스로도 수천 개의 동시 연결을 효율적으로 처리할 수 있어, 정적 콘텐츠 제공과 리버스 프록시 서버로 사용될 때 특히 높은 성능을 보인다.
아파치는 강력한 모듈 시스템과 .htaccess 파일을 통한 디렉터리 단위 설정으로 높은 유연성과 호환성을 자랑한다. 이는 공유 호스팅 환경이나 다양한 모듈에 의존하는 레거시 애플리케이션에 유리하다. 그러나 이러한 유연성은 설정이 복잡해지고, .htaccess 파일의 지속적인 재검사로 인한 성능 오버헤드로 이어질 수 있다. NGINX는 설정이 일반적으로 더 간결하고 중앙 집중식이며, 이는 성능과 보안 측면에서 장점으로 작용한다.
최근에는 LiteSpeed와 같은 새로운 경쟁자도 등장하며 경쟁이 치열해지고 있다. LiteSpeed는 아파치와 호환되는 설정 문법을 사용하면서도 NGINX와 유사한 이벤트 기반 처리 엔진을 채택해 빠른 속도를 제공한다. 또한, 아파치가 HTTP/3 공식 지원을 아직 완전히 제공하지 않는 반면, NGINX와 LiteSpeed는 이를 더 빠르게 구현해 나가고 있어, 현대 프로토콜 지원 면에서도 아파치는 추격을 받고 있는 상황이다.

아파치 HTTP 서버는 대부분의 주요 리눅스 배포판에서 기본 또는 표준 웹 서버 소프트웨어로 통합되어 제공된다. 데비안, 우분투, CentOS, RHEL, 페도라와 같은 배포판들은 공식 패키지 저장소를 통해 아파치를 쉽게 설치하고 관리할 수 있도록 지원한다. 이는 아파치 소프트웨어 재단의 오픈 소스 라이선스 정책과 리눅스 생태계와의 오랜 협력 관계 덕분이다.
배포판들은 일반적으로 httpd 또는 apache2라는 패키지 이름으로 아파치를 제공하며, 시스템의 패키지 관리자를 사용해 단일 명령어로 설치, 업데이트, 제거가 가능하다. 예를 들어, 데비안 계열에서는 apt install apache2, RHEL 계열에서는 yum install httpd 명령어를 사용한다. 이렇게 통합됨으로써 사용자는 소스 코드를 직접 컴파일할 필요 없이 안정적으로 검증된 버전을 빠르게 배포할 수 있다.
또한, 각 배포판은 아파치의 구성 파일 배치, 서비스 관리 방식, 로그 파일 위치 등을 자체적인 표준과 통합하여 제공한다. 이는 시스템 관리자가 특정 배포판에 익숙하다면, 아파치 서버의 운영 및 문제 해결도 일관된 방식으로 수행할 수 있음을 의미한다. 이러한 긴밀한 통합은 리눅스가 서버 시장에서 강세를 보이는 데 기여한 핵심 요소 중 하나로 평가된다.
아파치 HTTP 서버는 개발 및 테스트 환경을 쉽게 구축할 수 있도록 다양한 통합 패키지로 배포된다. 대표적인 예로 XAMPP가 있으며, 이는 아파치 HTTP 서버, PHP, MySQL 데이터베이스, Perl 인터프리터를 하나의 번들로 묶어 제공하는 크로스 플랫폼 솔루션이다. 특히 윈도우 사용자들이 로컬에서 웹 애플리케이션을 개발하고 테스트하는 데 널리 사용된다. 이와 유사한 패키지로 리눅스 환경에서는 LAMP 스택이, 애플의 macOS에서는 MAMP가 인기를 끌었다.
이러한 통합 패키지들은 개별적으로 웹 서버, 스크립트 언어, 데이터베이스 관리 시스템을 설치하고 구성하는 복잡한 과정을 대폭 간소화한다. 사용자는 한 번의 설치 과정만으로 완전한 웹 개발 환경을 손쉽게 구축할 수 있으며, 이는 교육 목적이나 초보 개발자에게 매우 유용하다. 또한, XAMPP는 파일질라 FTP 서버나 메일 서버와 같은 추가 도구를 포함하기도 한다.
한편, 주요 리눅스 배포판들은 공식 패키지 관리자를 통해 아파치 HTTP 서버를 기본적으로 지원한다. 예를 들어, 데비안 계열의 우분투나 레드햇 계열의 페도라에서는 apt나 yum 명령어를 사용하여 공식 저장소에서 아파치를 쉽게 설치하고 업데이트할 수 있다. 이는 프로덕션 서버 환경에서 표준적인 설치 및 유지보수 방법으로 자리 잡았다.
통합 패키지의 편리성에도 불구하고, 프로덕션 환경에서는 보안과 성능을 위해 각 구성 요소를 별도로 최적화하여 설치하고 구성하는 것이 일반적이다. 패키지 내부의 PHP나 MySQL 버전이 최신 보안 패치를 즉시 반영하지 못할 수 있기 때문이다. 따라서 이러한 패키지들은 주로 로컬 개발 및 학습용으로 권장되며, 실제 서비스 운영에는 적합하지 않을 수 있다.
