Apache HTTP 서버

Apache HTTP Server
Apache HTTP 서버
Apache HTTP server logo (2019-present).svg
원저작자로버트 맥쿨
개발자Apache 소프트웨어 재단
초기 릴리즈1995년, 27년(연간)[1]
안정된 릴리스
2.4.54[2] / 2022년 6월 8일
저장소
기입처C,[3] XML[4]
운영 체제Unix 계열, Microsoft Windows,[5] OpenVMS
유형웹 서버
면허증.Apache-2.0
웹 사이트httpd.apache.org Edit this at Wikidata

Apache HTTP Server(/'pétii/'-PATCH-ee')Apache License 2.0 조건에 따라 출시된 무료 오픈소스 크로스 플랫폼서버 소프트웨어입니다.Apache는 Apache Software Foundation의 후원으로 열린 개발자 커뮤니티에 의해 개발 및 관리됩니다.

대부분의 Apache HTTP 서버 인스턴스는 리눅스 [6]배포에서 실행되지만 현재 버전은 마이크로소프트 윈도우즈,[7] OpenVMS [8]및 다양한 Unix 유사 시스템에서도 실행됩니다.이전 버전은 NetWare, OS/2 및 메인프레임 포트 [10]등 기타 운영 [9]체제에서도 실행되었습니다.

원래 NCSA HTTPd 서버를 기반으로 한 Apache의 개발은 NCSA 코드 작업이 중단된 후 1995년 초에 시작되었습니다.Apache는 NCSA HTTPd를 제치고 지배적인 HTTP 서버로서 빠르게 월드 와이드 [11]의 초기 성장에 중요한 역할을 했습니다.2009년에는 1억 [12]개 이상의 웹사이트를 서비스한 최초의 웹 서버 소프트웨어가 되었다.

2022년 3월 현재, Netcraft는 Apache가 가장 바쁜 웹사이트의 23.04%를 제공했고, Nginx는 22.01%를 제공했다고 추정했다.Cloudflare는 19.53%, Microsoft Internet Information Services는 5.78%로 상위 4위 안에 들었습니다.Netcraft의 다른 통계 중 일부는 Nginx가 [13]Apache보다 앞서 있다.W3Techs의 2022년 6월 전체 웹사이트 리뷰에 따르면 Apache가 31.4%, Nginx가 33.6%로 2위, Cloudflare Server가 21.6%[14]로 3위를 차지했다.

이름.

아파치 소프트웨어 재단에 따르면, 그것의 이름"다양한 원주민 미국인 국가에 대한 존중에서 전체에게 아파치로, 그들의 상급 실력전 전략에서 잘 알려 져, 그들의 무궁무진한 인내력 언급한"[15]는 thereunto 열린 인터넷처럼 보이는 것 같은 맥락에서, 오픈 소스의 자유로운 교환을 바탕으로 선정되었다.대구e는 곧 독점 소프트웨어 벤더인 마이크로소프트에 의해 정복당할 것으로 보였는데, 벨렌도르프는 그의 노력이 마지막 자유 아파치 민족의 [16][17]족장인 제로니모에 필적하는 것을 다소 낭만적으로 보았다.그러나 이 이름은 "일련의 패치로 만들어진 서버인 '패치가 있는서버'에서도 귀여운 장난을 친다"고 인정했다.

1995년 프로젝트의 공식 문서를 포함한 "패치" 소프트웨어 말장난 이론의 다른 출처는 다음과 같다. "아파체는 귀여운 이름인데 고착되어 있다.기존 코드와 일련의 소프트웨어 패치를 기반으로 한 것으로, 'PAtCHy'[18][19] 서버에서의 말장난입니다."

그러나 2000년 4월 인터뷰에서 아파치의 창시자 중 한 명인 브라이언 벨렌도르프는 아파치의 기원은 장난이 아니라고 주장했다.[20]

그 이름은 말 그대로 뜬금없이 나왔다.정말 멋진 일이었다고 말하고 싶지만, 뜬금없었어요.몇 달 후 이 프로젝트가 시작되었을 때 사람들에게 이 페이지를 가리키며 이렇게 말했습니다."이봐, 그 아이디어 어떻게 생각해?"...어떤 분은 그 이름이 마음에 들고 정말 좋은 말장난이었다고 말씀하셨습니다.그래서 제가 말했죠, "말장난?그게 무슨 말이야?그는 다음과 같이 말했습니다. "저희는 수많은 소프트웨어 패치로 서버를 구축하고 있습니다.즉, 패치가 있는 웹 서버입니다.""오, 알았어"라고 했더니...이름이 생각났을 때, 아니요.이건 그저 함축적인 의미일 뿐이죠: "죄수를 잡지 마세요.좀 공격적으로 굴어서 엉덩이를 걷어차라."

Apache가 Unix에서 실행 중일 때 프로세스 이름은 다음과 같습니다.httpd('HTTP 데몬'[21]의 줄임말)

기능의 개요

Apache는 핵심 기능을 확장하는 컴파일모듈로 구현된 다양한 기능을 지원합니다.인증 방식부터 Perl, Python, TclPHP같은 서버 측 프로그래밍 언어에 이르기까지 다양합니다.일반적인 인증 모듈에는 mod_access, mod_auth, mod_digest 및 mod_auth_digest의 후속인 mod_auth_digest가 있습니다.기타 기능의 예로는 Secure Sockets Layer and Transport Layer Security 지원(mod_ssl), 프록시 모듈(mod_proxy), URL 개서 모듈(mod_rewrite), 커스텀로그 파일(mod_log_config), 필터링 지원(mod_include 및 mod_ext_filter) 등이 있습니다.

Apache에서 널리 사용되는 압축 방법으로는 HTTP를 통해 제공되는 웹 페이지의 크기(무게)를 줄이기 위해 구현된 외부 확장 모듈 mod_gzip이 있습니다.ModSecurity는 웹 응용 프로그램용 오픈 소스 침입 탐지 및 방지 엔진입니다.Apache 로그는 AWStats/W3Perl 또는 Visiters와 같은 무료 스크립트를 사용하여 웹 브라우저를 통해 분석할 수 있습니다.

가상 호스팅을 사용하면 하나의 Apache 설치로 여러 웹 사이트를 지원할 수 있습니다.예를 들어 Apache가 한 대 설치되어 있는 한 대의 시스템이 동시에example.com,example.org,test47.test-server.example.edu,기타.

Apache는 구성 가능한 오류 메시지, DBMS 기반 인증 데이터베이스, 콘텐츠 네고시에이션을 제공하며 여러 그래픽 사용자 인터페이스(GUI)를 지원합니다.

패스워드 인증과 디지털 증명서 인증을 지원합니다.소스 코드를 자유롭게 사용할 수 있기 때문에 누구나 특정 요구에 맞게 서버를 조정할 수 있으며 Apache 애드온의 대규모 [22]퍼블릭 라이브러리가 있습니다.

기능의 상세한 것에 대하여는, 이하를 참조해 주세요.

성능

Apache는 단일 아키텍처를 구현하는 대신 프로세스 기반 모드, 하이브리드(프로세스 및 스레드) 모드 또는 이벤트 하이브리드 모드에서 실행할 수 있는 다양한 MPM(MultiProcessing Module)을 제공하여 각 특정 인프라의 요구 사항을 보다 잘 충족시킵니다.따라서 MPM과 설정의 선택이 중요합니다.성능 저하가 필요한 경우 Apache는 단순히 더 많은 요청을 처리하는 것보다 지연 시간을 줄이고 처리량을 늘림으로써 합리적인 기간 내에 일관성 [clarification needed]있고 안정적인 요청 처리를 보장하도록 설계되었습니다.

정적 페이지를 전송하기 위해 Apache 2.2 시리즈는 nginx[39]바니시보다 상당히 느린 것으로 간주되었습니다.이 문제를 해결하기 위해 Apache 개발자는 비동기 이벤트 기반 [40][clarification needed]루프에서 프로세스당 여러 프로세스와 스레드를 혼합한 이벤트 MPM을 만들었습니다.Jim Jagielski와 다른 독립적인 [41][42][43]소스에 따르면 Apache 2.4 시리즈에 구현된 이 아키텍처는 적어도 이벤트 기반 웹 서버와 같은 성능을 발휘합니다.그러나 일부 독립적이지만 상당히 오래된 벤치마크는 여전히 nginx의 절반 속도라는 것을 보여준다.[44]

라이선스

Apache HTTP Server 코드베이스[45]2004년1월에 Apache 2.0 라이선스(이전 1.1 라이선스)에 잔존되었으며 Apache HTTP Server 1.31 및 2.0.49가 새로운 [46]라이선스를 사용한 첫 번째 릴리스입니다.

OpenBSD 프로젝트는 이러한 변화를 좋아하지 않았고 2.0 이전 버전의 Apache를 계속 사용했으며,[47][48][49] Apache 1.3.x를 효과적으로 포킹했습니다.그들은 처음에는 Nginx로 대체하였고, 곧 Relayd [50][51][52][53]프로젝트를 기반으로 OpenBSD Httpd를 자체 대체하였다.

버전

버전 1.1: Apache License 1.1은 2000년에 ASF에 의해 승인되었습니다.1.0 라이선스의 주요 변경 사항은 '광고 조항'(1.0 라이선스의 섹션 3)에 있습니다.따라서 파생된 제품은 광고 자료에 속성을 포함할 필요가 없으며 문서에만 포함시킬 필요가 없습니다.

버전 2.0: ASF는 2004년1월에 Apache License 2.0을 도입했습니다.라이선스의 목표에는 ASF 이외의 프로젝트가 라이선스를 사용하기 쉽게 하는 것, GPL 기반의 소프트웨어와의 호환성 향상, 라이선스를 모든 파일에 기재하는 대신 참조로 포함할 수 있도록 하는 것, 기여에 대한 라이선스를 명확히 하는 것, 그리고 반드시 위반할 필요가 있는 기여에 대한 특허 라이선스를 요구하는 것이 포함되어 있습니다.아이버터만의 특허입니다.

발전

Apache HTTP 서버 버전
버전 초기 릴리즈 최신 릴리즈
이전 버전, 유지 보수 불필요: 1.3 1998-06-06[54] 2010-02-03 (1.3.42)[55]
이전 버전, 유지 보수 불필요: 2.0 2002-04-06[56] 2013-07-10 (2.0.65)[57]
이전 버전, 유지 보수 불필요: 2.2 2005-12-01[58] 2017-07-11 (2.2.34)[59]
현재 안정적인 버전: 2.4 2012년[60] 2월 21일 2022-03-14 (2.4.53)[61]
범례:
구버전
이전 버전, 아직 유지 관리됨
최신 버전
최신 프리뷰 버전
향후 출시

Apache HTTP Server Project는 HTTP(Web) 서버의 강력한 상용 등급, 풍부한 기능 및 자유롭게 사용할 수 있는 소스 코드 구현을 목표로 하는 협업 소프트웨어 개발 작업입니다.이 프로젝트는 전 세계에 있는 자원봉사자 그룹에 의해 공동으로 관리되며 인터넷과 웹을 사용하여 서버와 관련 문서를 통신, 계획 및 개발합니다.이 프로젝트는 Apache Software Foundation의 일부입니다.또한 수백 명의 사용자가 아이디어, 코드 및 문서를 프로젝트에 [62][63][64]기여했습니다.

Apache 2.4는 BeOS,[9] TPF, A/UX, NeXT Tandem 플랫폼에 대한 지원을 중단했습니다.

보안.

Apache는 다른 서버 소프트웨어와 마찬가지로 해킹 및 악용될 수 있습니다.Apache의 주요 공격 도구는 Slowloris로 Apache 소프트웨어의 [65]버그를 악용합니다.다수의 소켓을 작성하고, 몇 바이트(「킵 얼라이브 헤더」라고 불립니다)를 송신하는 것으로, 각 소켓이 가동해, 비지 상태를 유지해, 컴퓨터가 아직 접속되어 있어 네트워크상의 문제가 발생하지 않는 것을 서버에 통지합니다.Apache 개발자들은 Slowloris [66][67]공격의 성공 가능성을 줄이기 위한 수단으로 Apache 모듈 mod_limitipconn, mod_qos, mod_eversion, mod_security, mod_noloris 및 mod_antiloris를 제안했습니다.Apache 2.2.15 이후 Apache는 [68]mod_reqtimeout 모듈을 개발자에 의해 지원되는 공식 솔루션으로 제공합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "About the Apache HTTP Server Project". Apache Software Foundation. Archived from the original on 7 June 2008. Retrieved 2008-06-25.
  2. ^ https://downloads.apache.org/httpd/Announcement2.4.html 를 참조해 주세요.
  3. ^ "Archived copy". Archived from the original on 2016-03-02. Retrieved 2016-02-27.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  4. ^ "Languages". Apache HTTP Server. Black Duck Software. Ohloh. Archived from the original on 7 April 2014. Retrieved 2 April 2014.
  5. ^ "Compiling and Installing". httpd.apache.org. The Apache Software Foundation. Retrieved 9 May 2016.
  6. ^ "OS/Linux Distributions using Apache". secure1.securityspace.com. Retrieved 2018-09-17.
  7. ^ "Platform Specific Notes - Apache HTTP Server Version 2.4". httpd.apache.org. Retrieved 2019-01-21.
  8. ^ "Secure Web Server". vmssoftware.com. Retrieved 2020-10-20.
  9. ^ a b "Upgrading to 2.4 from 2.2". Platform support has been removed for BeOS, TPF, and even older platforms such as A/UX, Next, and Tandem. These were believed to be broken anyway.
  10. ^ "The Apache EBCDIC Port - Apache HTTP Server Version 2.4". httpd.apache.org. Retrieved 2019-08-16.
  11. ^ 모든 도메인에서 상위 서버용 Netcraft 시장 점유율 1995년 8월 - 오늘 (월간 갱신)
  12. ^ "February 2009 Web Server Survey". Netcraft. Archived from the original on 26 February 2009. Retrieved 2009-03-29.
  13. ^ "March 2022 Web Server Survey". Netcraft News. Retrieved 2022-06-18.
  14. ^ "Usage Statistics of Web Servers". w3techs.com. Retrieved 2022-06-18.
  15. ^ "Apache Foundation". www.apache.org. Retrieved 22 August 2018.
  16. ^ ""Trillions and Trillions Served" documentary feature on The Apache Software Foundation". TheApacheFoundation / Youtube. 2020. Archived from the original on 2021-11-22.
  17. ^ "A Foundation of Trust: Building a Blockchain Future : Brian Behlendorf". Long Now Foundation / YouTube. 2020-02-10. Archived from the original on 2021-11-22.
  18. ^ "Information on the Apache HTTP Server Project". 1997-04-15. Archived from the original on April 15, 1997.
  19. ^ "Apache Server Frequently Asked Questions". Archived from the original on 1997-01-06. Retrieved 15 January 2017.
  20. ^ McMillan, Robert (15 April 2000). "Apache Power". Linux Magazine. Archived from the original on 28 January 2019.
  21. ^ "Apache Docs". httpd.apache.org. Retrieved 22 August 2018.
  22. ^ "Apache Web Server". webopedia.com.
  23. ^ "Apache HTTP Server Tutorial: .htaccess files". Apache.org.
  24. ^ "mod_proxy". Apache.org.
  25. ^ "mod_proxy_balancer". Apache.org.
  26. ^ "Balancer Manager". Apache.org.
  27. ^ "Authentication and Authorization". Apache.org.
  28. ^ "mod_rewrite". Apache.org.
  29. ^ "mod_headers". Apache.org.
  30. ^ "mod_sed". Apache.org.
  31. ^ "mod_substitute". Apache.org.
  32. ^ "Apache httpd Tutorial: Introduction to Server Side Includes". Apache.org.
  33. ^ "mod_usertrack". Apache.org.
  34. ^ "Apache Tutorial: Dynamic Content with CGI". Apache.org.
  35. ^ "Per-user web directories". Apache.org.
  36. ^ "Expressions in Apache HTTP Server". Apache.org.
  37. ^ "mod_status". Apache.org.
  38. ^ "Apache Module: mod_ftp". Apache.org.
  39. ^ "Serving static files: a comparison between Apache, Nginx, Varnish and G-WAN". Spoot!.
  40. ^ "worker - Apache HTTP Server Version 2.2". apache.org.
  41. ^ "Apache httpd 2.4" (PDF).
  42. ^ "Picking a Proxy Server".
  43. ^ "Throughput evaluation of Apache 2.4.1".
  44. ^ "Performance of Apache 2.4 with the event MPM compared to Nginx". eschrade.com.
  45. ^ "Apache License, Version 2.0". The Apache Software Foundation. January 2004. Retrieved 2013-05-21.
  46. ^ Burton, Richard Antony. "FYI: Apache HTTP Server 2.0.49 Released". Newsgroup: alt.apache.configuration. Retrieved 2018-02-16.
  47. ^ de Raadt, Theo (18 February 2004). "The new apache license". openbsd-misc (Mailing list). Retrieved 2013-05-21.
  48. ^ "Copyright Policy". OpenBSD. Retrieved 2013-05-12.
  49. ^ "apache-httpd-openbsd-1.3.20140502p2 – OpenBSD improved and secured version of Apache 1.3". OpenBSD ports. Retrieved 2014-12-28.
  50. ^ Marvin, Rob (25 March 2015). "Inside OpenBSD's new httpd Web server". SD Times. Retrieved 12 October 2019.
  51. ^ "OpenBSD Upgrade Guide: 5.1 to 5.2". openbsd.org.
  52. ^ jj, ed. (2014-03-14). "Heads Up: Apache Removed from Base". OpenBSD Journal.
  53. ^ "OpenBSD Upgrade Guide: 5.5 to 5.6". openbsd.org.
  54. ^ "Announcement: Apache 1.3.0 Released !". 1998-06-06. Retrieved 2015-01-06.
  55. ^ "Apache HTTP Server 1.3.42 released (final release of 1.3.x)". apache.org.
  56. ^ "Official Release: Apache 2.0.35 is now GA". 2002-04-06. Retrieved 2015-01-06.
  57. ^ "[Announcement] Apache HTTP Server 2.0.65 Released". apache.org.
  58. ^ "Apache HTTP Server 2.2.0 Released". 2005-12-01. Retrieved 2015-01-06.
  59. ^ "[Announce] Apache HTTP Server 2.2.34 Released". apache.org.
  60. ^ "[ANNOUNCEMENT] Apache HTTP Server 2.4.1 Released". 2012-02-21. Retrieved 2015-07-17.
  61. ^ "Apache HTTP Server 2.4.53 Released". apache.org.
  62. ^ Documentation Group. "About the Apache HTTP Server Project - The Apache HTTP Server Project". apache.org.
  63. ^ "The Apache HTTP Server Open Source Project on Ohloh. (n.d.). Ohloh, the open source network. Retrieved November 12, 2012".
  64. ^ "Chapter 4. The Apache HTTP Server". fedoraproject.org.
  65. ^ Zdrnja, Bojan (21 June 2009). "Apache HTTP DoS tool mitigation". SANS Institute.
  66. ^ "Slowloris HTTP DoS". Archived from the original on 26 April 2015. Retrieved 26 June 2009.{{cite web}}: CS1 maint: bot: 원래 URL 상태를 알 수 없습니다(링크).
  67. ^ "mod_noloris: defending against DoS". niq's soapbox. Retrieved 7 January 2012.
  68. ^ "mod_reqtimeout". Apache.org. Retrieved 2013-07-03.

외부 링크