아파치 HTTP 서버

Apache HTTP Server
홈페이지

httpd_logo_wide_new.png

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

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

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

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

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

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

윈도우용도 나온다. 윈도우에도 XAMPP나 APMSetup 등의 아파치 웹 서버+PHP+MySQL을 편리하게 통합해 설치할 수 있는 패키지가 나와 있다. 셋 다 윈도우용이 나오기 때문에 가능한 것. 그러나 아무래도 리눅스 베이스로 만들어진 프로그램이다보니 윈도우에서는 제 속도가 나오지 않는다. 보통 이건 리눅스 서버 입문자의 디버깅 환경 구축용 혹은 PHP+MySQL 연습용 정도. 거기다 윈도우 서버에는 MS가 자체적으로 만든 인터넷 정보 서비스(IIS)가 있기 때문에, IIS에 FastCGI 모듈로 PHP를 연결시켜서 돌리는 것이 보통이다. 이 때문에 PHP의 윈도우 버전은 IIS용과 Apache용이 따로 나온다.
  1. 하지만 PHP 7이 발표되면서 속도 면에서 HHVM은 강력한 적수를 만나게 되었다.