익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT위키
검색
아파치 웹 서버
편집하기 (부분)
IT위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
==특징== 아파치 웹서버는 무료 오픈소스이고, 확장성, 호환성, 이식성, 안정성이 높아서 [[웹 서버]]에서 많이 사용하며, 모듈이라는 개념으로 수많은 기능을 덧붙일 수 있다. 이 모듈을 통해 다른 프로그램과의 연동도 가능하다. 이 때문에 여러 가지 서버 사이드 [[프로그래밍 언어]]나 [[데이터베이스 관리 시스템]]과도 궁합이 잘 맞았는데, 초창기에는 펄(Perl)이 대세였고, [[PHP]]가 그 뒤를 이었다. 바로 PHP 모듈을 통해 PHP를 실행할 수도 있지만, 주로 속도 향상을 위해 PHP-FPM을 통해 PHP를 연결해서 사용한다. 좀 더 고성능을 원하는 사람은 힙합 가상 머신(HHVM)을 쓴다. 그리고 오픈소스 데이터베이스 관리 시스템인 마이에스큐엘([[MySQL]])이 나오자, APM(Apache+PHP+MySQL)이라고 통칭하면서 웹 서버를 돌리기 위한 기본이 되었다. 물론 다른 언어와 다른 데이터베이스 관리 시스템도 지원하지만, 저 조합의 인지도가 가장 높다. 자바서버 페이지(JSP)의 경우에도 설정이 조금 귀찮아지지만 [[톰캣]]과 연동하여 돌릴 수 있다. 아파치는 요청 당 프로세스 또는 쓰레드가 처리하는 구조이며, 요청이 많아지면 CPU와 메모리 사용량이 높아져 성능이 저하될수있다. 이 문제들은 킵얼라이브(Keep Alive)를 활성화함으로 해결할 수 있지만 대량 접속시에 효율이 급격히 떨어지는 문제점이 발생한다. 라이선스는 [[GPL]]이 아닌 자체 라이선스를 쓴다. [[아차피 라이선스]] 2.0을 따르는데, 아파치 소프트웨어 재단에서 만들었다는 사실을 밝히고 아파치 라이선스를 따르면 자유롭게 수정 및 재배포가 가능하다. 소스 공개 강제 사항도 없는 자유로운 라이선스다. 그러나 2.2 버전대에서 너무 무겁다는 평이 많아졌고, 빠른 속도를 내세운 엔진엑스라는 웹 서버 프로그램이 새로 나오면서 아파치의 위기가 왔다. 아파치는 Event MPM을 탑재하여 속도를 크게 개선한 2.4버전을 내놓으면서 대응하고 있다. 문제점들을 개선하기위해 아파치2.4부터 Event MPM을 적용했다고 해도, Event Driven을 사용하여 리소스 사용량이 적은 엔진엑스보다 떨어지는 성능과, 대량접속에도 적은 리소스를 사용하며 빠르게 서비스를 요구하는 웹사이트가 늘어남으로 인해서 아파치는 하락세를 타고있으며, 경량화 [[서버]]인 엔진엑스이 시장 점유율을 점차 늘려가고 있다. [[엔진엑스]]가 성능상의 장점을 가지고 있다고 하지만, 아파치 웹서버는 여전히 높은 서버 시장점유율과 안정성, 호환성, 확장성을 가지고 있다. 아파치 웹서버가 현재 최우선 과제로 삼고있는 성능 개발 목표를 달성하고, 지속적으로 버전 [[패치]]를 해준다면 다시 시장 점유율을 늘려갈 수 있을 것으로 기대하고 있다. 아파치 웹서버는 기능이 매우 많지만 그 기능을 다 활용하는 사람이 드문 그런 프로그램이다. 확장 모듈이 매우 다양하여 간단하게 설치하고 사용 가능하지만 대부분의 사람은 이 프로그램과 PHP, 마이에스큐엘만 설치하고 돌린다. 그리고 그 기능들은 엔진엑스에도 그대로 존재하고, 더 빠르다. 호환성을 확인하고 옮길 수 있으며 옮기는 게 좋다. 윈도우용도 나온다. 윈도우에도 크로스 플랫폼 웹 서버 자유 소프트웨어 꾸러미(XAMPP)나 에이피엠셋업(APMSetup) 등의 APM을 편리하게 통합해 설치할 수 있는 패키지가 나와 있다. 아파치 웹 서버, PHP, 마이에스큐엘 전부 윈도우용이 나오기 때문에 가능한 것이다. 그러나 리눅스·유닉스 베이스로 만들어진 프로그램이다 보니 윈도우에서는 제 속도가 나오지 않는다. 윈도우 버전은 서버 입문자의 디버깅 환경 구축용 혹은 PHP+마이에스큐엘 연습용 정도라고 보면 된다. 거기다 윈도우 서버에는 마이크로소프트가 자체적으로 만든 인터넷 정보 서비스가 있기 때문에, 인터넷 정보 서비스에 FastCGI 모듈로 PHP를 연결해서 돌리는 것이 보통이다. 이 때문에 PHP의 윈도우 버전은 인터넷 정보 서비스용과 아파치용(엑스엔진용)이 따로 나온다.<ref name="이름">아파치 HTTP 서버 나무위키 - https://namu.wiki/w/%EC%95%84%ED%8C%8C%EC%B9%98%20HTTP%20%EC%84%9C%EB%B2%84</ref><ref>아파치 공식 홈페이지 - [http://httpd.apache.org/docs/trunk/new_features_2_4.html Overview of new features in Apache HTTP Server 2.4]</ref> ====구조==== 아파치는 MPM(Multi Processing Module) 구조를 기반으로 클라이언트 요청 처리 방법을 처리하는 기술 기반을 하고 있다. MPM은 mpm_prefork, mpm_worker, mpm_event 이 3가지 구조를 근간으로 하고 있다. mpm_prefork는 단일 스레드 로직에서 동작하며 각 서버 프로세스는 한 번에 하나의 웹 요청(Web Request)을 처리한다. 이러한 방식은 PHP 환경에서 권장되는 방식이다. LAMP 아키턱쳐에서 PHP가 등장하는 이유도 이러한 데서 비롯된다. mpm_worker는 동시에 여러 스레드를 지원한다. 이것은 아파치가 좀 더 효율적이고 확장 가능하도록 돕는다. mpm_event는 mpm_worker와 유사한 방식으로 동작하지만 최근 등장한 웹 관련 애플리케이션을 위한 킵얼라이브 메커니즘이 포함되어 있다. 이러한 방식은 커넥션마다 새로운 스레드가 필요하다는 관점에서 커넥션이 대규모로 많아질 때 성능 측면에서 많은 이슈가 발생할 수 있다.<ref name="이거">청년정신, 〈[https://youngmind.tistory.com/entry/Apache-vs-Nginx Apache-vs-Nginx]〉, 《티스토리》, 2019-03-27</ref> ====필요성==== 아파치 웹서버는 HTTP 서버를 통해 무거운 사용자 환경의 이미지, JS, CSS, HTML 파일 같은 정적 콘텐츠를 효율적으로 제공하는데 톰캣도 정적 콘텐츠를 제공할 수는 있지만 아파치 웹서버에 비해 반응 속도가 느리며 톰캣과 비교해 10% 정도 더 효율적으로 정적 콘텐츠를 처리하므로 사용자 부하가 높은 상황에서는 아파치를 통합하는 것이 좋다. 아파치 웹서버의 가장 훌륭한 기능 중 하나인 다중 웹사이트 호스팅 기능은 톰캣 7에서 처음으로 제공되는 기능이다. httpd.conf를 이용해 32개가 넘는 가상 호스트를 설정할 수 있다. 32개 이상의 가상 호스트를 설정하려면 virtual.conf 파일을 별도로 만든 다음 httpd.conf에서 virtual.conf를 포함하도록 설정해야 한다. 아파치는 클러스터링을 제공해서 톰캣에 다중 인스턴스 연결을 안정적으로 제공하는 가장 효율적인 서버다. 이 기능의 가장 큰 장점은 인스턴스가 다운됐을 때에도 애플리케이션이 온라인 상태를 유지할 수 있다는 것이다. 또한 배포 중에 다른 인스턴스를 온라인 상태로 제공해 사용자 요청을 처리함과 동시에 인스턴스에 코드를 배포할 수 있다. 즉, [[장애]] 없이 365일 애플리케이션을 수행할 수 있다. 그뿐 아니라, 유연한 모듈 참조를 지원해서 애플리케이션의 요구 사항에 맞게 모든 모듈을 컴파일, 재컴파일 할 수 있다. 애플리케이션의 [[확장성]], 그리고 서드 파티 도구와 통합할 때 유용한 기능이다. 아파치와 톰캣은 사용자와 호스트 기반 보안을 제공하며, 애플리케이션의 요구사항을 고려해 둘 중 누구의 보안을 활성화할 것인지를 결정해야한다. 보안 소켓 계층(SSL), 프록시, 접근제어목록, 디렉토리 접근 제한 등의 보안 기능과 하나의 서버에 여러 도메인 운영, 서버호스팅 등 가상 호스트 기능을 하고 리소스 분산처리, Cache(Expires), HTTP 표준 설정, MPM(Multi-Processing Module), 킵얼라이브(KeepAlive) 등의 성능적인 측면에서 우수하다.<ref>beom3, 〈[https://beom3.tistory.com/12 Apache HTTP서버의 장점]〉, 《네이버 블로그》, 2016-09-19</ref><ref name="ㄴㄴ" />
요약:
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
분류별 보기
일반 IT용어
프로젝트 관리
디지털 서비스
블록체인
인공지능
소프트웨어 공학
운영체제
컴퓨터 구조
자료 구조
데이터 과학
데이터베이스
네트워크
프로토콜
보안
컴플라이언스
개인정보보호
표준
경영학
기업 IT
조직/단체
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록