Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Apache HTTP Server , в просторечии называется Apache ( / ə р æ я / ə- PATCH -eE ), является свободным и открытым исходным кодом кросс-платформенный веб - сервер программное обеспечение, выпущенное в соответствии с условиями лицензии Apache License 2.0. Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation .

Подавляющее большинство экземпляров Apache HTTP Server , работать на распределение Linux , [6] , но текущая версия также может работать на Microsoft Windows , [7] OpenVMS , [8] , а также широкий выбор Unix-подобных систем. Предыдущие версии также работали в NetWare , OS / 2 и других операционных системах [9], включая порты на мэйнфреймы. [10]

Первоначально основанный на сервере NCSA HTTPd , разработка Apache началась в начале 1995 года после того, как работа над кодом NCSA застопорилась. Apache играет ключевую роль в начальном росте World Wide Web , [11] быстро обгон NCSA HTTPd как доминирующий HTTP - сервер. В 2009 году он стал первым программным обеспечением для веб-серверов, обслуживающим более 100 миллионов веб-сайтов . [12] По оценкам Netcraft, на январь 2021 года Apache обслуживает 24,63% от миллиона самых загруженных веб-сайтов, в то время как Nginx обслуживает 23,21%, а Microsoft занимает третье место с 6,85% (по некоторым другим статистическим данным Netcraft Nginx опережает Apache), [ 13]в то время как согласно W3Techs, Apache занимает первое место с 35,0%, Nginx второе с 33,0% и Cloudflare Server третье с 17,3%. [14]

Имя [ редактировать ]

На протяжении многих лет предлагалось множество объяснений происхождения имени Apache.

С момента создания проекта Apache в 1995 году официальная документация гласила: [15] [16]

Apache - симпатичное имя, которое прижилось. Он был основан на некотором существующем коде и серии программных исправлений , каламбур на сервере «PAtCHy».

В интервью в апреле 2000 года Брайан Белендорф , один из создателей Apache, сказал: [17]

Название пришло буквально из ниоткуда. Хотел бы я сказать, что это было что-то фантастическое, но это было совершенно неожиданно. Я поместил это на страницу, а затем, несколько месяцев спустя, когда этот проект начался, я указал людям на эту страницу и сказал: «Эй, что вы думаете об этой идее?» ... Кто-то сказал, что им нравится это имя и что это действительно хороший каламбур. И я подумал: «Игра слов? Что ты имеешь в виду?» Он сказал: «Ну, мы строим сервер из кучи программных исправлений, верно? Так это неоднородный веб-сервер». Я сказал: «О, хорошо». ... Когда я подумал об этом имени, нет. Это просто как бы подразумевает: «Не берите пленных. Будьте агрессивны и надрать задницу».

С 2013 года Apache Foundation объясняет происхождение названия следующим образом: [18]

Название «апачи» было выбрано из уважения к различным индейским народам, вместе именуемым апачем, хорошо известным своими превосходными навыками в стратегии ведения войны и неиссякаемой выносливостью. Он также представляет собой забавный каламбур на «неоднородном веб-сервере» - сервере, состоящем из серии исправлений, - но это не было его источником. Группа разработчиков, выпустивших это новое программное обеспечение, вскоре начала называть себя «Apache Group».

Когда Apache работает под Unix, его имя процесса - httpdэто сокращение от «HTTP daemon ». [19]

Обзор функции [ править ]

Apache поддерживает множество функций, многие из которых реализованы в виде скомпилированных модулей, расширяющих основные функции. Они могут варьироваться от схем аутентификации до поддержки серверных языков программирования, таких как Perl , Python , Tcl и PHP . Популярные модули аутентификации включают mod_access, mod_auth, mod_digest и mod_auth_digest, преемника mod_digest. Примеры других функций включают поддержку Secure Sockets Layer и Transport Layer Security ( mod_ssl ), модуль прокси ( mod_proxy ), перезапись URL модуль (mod_rewrite), пользовательские файлы журналов (mod_log_config) и поддержка фильтрации (mod_include и mod_ext_filter).

Популярные методы сжатия в Apache включают внешний модуль расширения, mod_gzip, реализованный для уменьшения размера (веса) веб-страниц, обслуживаемых через HTTP . ModSecurity - это механизм обнаружения и предотвращения вторжений с открытым исходным кодом для веб-приложений. Журналы Apache можно анализировать через веб-браузер с помощью бесплатных скриптов, таких как AWStats / W3Perl или Visitors.

Виртуальный хостинг позволяет одной установке Apache обслуживать множество разных веб-сайтов . Например, один компьютер с одним установка Apache может одновременно обслуживать example.com, example.org, test47.test-server.example.eduи т.д.

Apache особенности конфигурируемые сообщения об ошибках, СУБД -На базы данных аутентификации, согласование содержания и поддерживает несколько графических пользовательских интерфейсов (GUI).

Он поддерживает аутентификацию по паролю и аутентификацию с цифровым сертификатом . Поскольку исходный код находится в свободном доступе, любой может адаптировать сервер под конкретные нужды, а также существует большая публичная библиотека надстроек Apache. [20]

Более подробный список возможностей представлен ниже:

  • Загружаемые динамические модули
  • Несколько режимов обработки запросов (MPM), включая Event-based / Async , Threaded и Prefork.
  • Высокая масштабируемость (легко обрабатывает более 10 000 одновременных подключений )
  • Обработка статических файлов, индексных файлов, автоиндексирование и согласование содержимого
  • .htaccessподдержка конфигурации для каждого каталога [21]
  • Обратный прокси с кешированием [22]
    • Балансировка нагрузки [23] с внутренними проверками работоспособности
    • Множественные механизмы балансировки нагрузки
    • Отказоустойчивость и отказоустойчивость с автоматическим восстановлением
    • Поддержка WebSocket , FastCGI , SCGI , AJP и uWSGI с кешированием
    • Динамическая конфигурация [24]
  • TLS / SSL с поддержкой сшивания SNI и OCSP через OpenSSL или wolfSSL .
  • Виртуальные серверы на основе имени и IP-адреса
  • IPv6- совместимый
  • Поддержка HTTP / 2
  • Детализированная аутентификация и контроль доступа к авторизации [25]
  • сжатие и распаковка gzip
  • Перезапись URL [26]
  • Заголовки [27] и содержимое [28] [29] перезапись
  • Пользовательское ведение журнала с ротацией
  • Ограничение одновременных подключений
  • Ограничение скорости обработки запросов
  • Регулирование полосы пропускания
  • Включает серверную часть [30]
  • Геолокация на основе IP-адреса
  • Отслеживание пользователей и сеансов [31]
  • WebDAV
  • Встроенные сценарии Perl , PHP и Lua
  • Поддержка CGI [32]
  • public_htmlвеб-страницы на пользователя [33]
  • Анализатор общих выражений [34]
  • Просмотр статуса в реальном времени [35]
  • Поддержка XML [36]
  • Поддержка FTP (отдельным модулем) [37]

Производительность [ править ]

Вместо реализации единой архитектуры Apache предоставляет множество модулей многопроцессорной обработки (MPM), которые позволяют ему работать в режиме на основе процесса , в гибридном (процесс и поток ) режиме или в гибридном режиме событий, чтобы лучше соответствовать требованиям каждой конкретной инфраструктуры. Поэтому важен выбор MPM и конфигурации. Там, где необходимо идти на компромисс в производительности, Apache предназначен для уменьшения задержки и увеличения пропускной способности по сравнению с простой обработкой большего количества запросов, что обеспечивает согласованную и надежную обработку запросов в разумные сроки. [ требуется разъяснение ]

Что касается доставки статических страниц, серия Apache 2.2 была признана значительно медленнее, чем nginx и varnish . [38] Для решения этой проблемы разработчики Apache создали Event MPM, который сочетает использование нескольких процессов и нескольких потоков на процесс в асинхронном цикле на основе событий . [39] [ требуется пояснение ] Согласно Джиму Ягельски и другим независимым источникам, эта архитектура, реализованная в серии Apache 2.4, работает не хуже, чем веб-серверы на основе событий . [40] [41] [42]Однако некоторые независимые, но значительно устаревшие тесты показывают, что он все еще в два раза медленнее, чем nginx, например [43]

Лицензирование [ править ]

Кодовая база HTTP-сервера Apache была перелицензирована на лицензию Apache 2.0 (из предыдущей лицензии 1.1) в январе 2004 года [44], и Apache HTTP Server 1.3.31 и 2.0.49 были первыми выпусками, использующими новую лицензию. [45]

OpenBSD проект не сделал , как изменения и продолжал использовать до версии 2.0 , Apache, эффективно разветвление Apache 1.3.x для своих целей. [46] [47] [48] Сначала они заменили его на Nginx , а вскоре после этого сделали свою собственную замену OpenBSD Httpd, основанную на проекте relayd. [49] [50] [51] [52]

Версии [ править ]

Версия 1.1: Лицензия Apache 1.1 была одобрена ASF в 2000 г .: Основное изменение по сравнению с лицензией 1.0 находится в «пункте о рекламе» (раздел 3 лицензии 1.0); от производных продуктов больше не требуется указывать указание авторства в своих рекламных материалах, только в документации.

Версия 2.0: ASF приняла лицензию Apache License 2.0 в январе 2004 года. Заявленные цели лицензии включали упрощение использования лицензии для проектов, не относящихся к ASF, улучшение совместимости с программным обеспечением на основе GPL, позволяющее вместо этого включать лицензию по ссылке. перечисленных в каждом файле, разъясняя лицензию на взносы и требуя патентную лицензию на взносы, которые обязательно нарушают собственные патенты участника.

Развитие [ править ]

Проект HTTP-сервера Apache - это совместная разработка программного обеспечения, направленная на создание надежной, многофункциональной и свободно доступной реализации исходного кода для HTTP (веб-сервера) коммерческого уровня. Проект совместно управляется группой добровольцев, расположенных по всему миру, которые используют Интернет и Интернет для общения, планирования и разработки сервера и связанной с ним документации. Этот проект является частью Apache Software Foundation. Кроме того, сотни пользователей внесли в проект идеи, код и документацию. [61] [62] [63]

Apache 2.4 отказался от поддержки платформ BeOS , TPF , A / UX , NeXT и Tandem . [9]

Безопасность [ править ]

Apache, как и другое серверное программное обеспечение, можно взломать и использовать. Основным инструментом атаки Apache является Slowloris , который использует ошибку в программном обеспечении Apache. [ необходимая цитата ] Он создает множество сокетов и поддерживает каждый из них в рабочем состоянии, отправляя несколько байтов (известных как «заголовки проверки активности»), чтобы сервер знал, что компьютер все еще подключен и не испытывает сетевых проблем. Разработчики Apache обратились к Slowloris с несколькими модулями, чтобы ограничить наносимый ущерб; Модули Apache mod_limitipconn, mod_qos , mod_evasive, mod security , mod_noloris и mod_antiloris были предложены в качестве средств снижения вероятности успешной атаки Slowloris. [64] [65]Начиная с Apache 2.2.15, Apache поставляет модуль mod_reqtimeout в качестве официального решения, поддерживаемого разработчиками. [66]

См. Также [ править ]

  • .htaccess
  • .htpasswd
  • ApacheBench
  • Сравнение программного обеспечения веб-сервера
  • IBM HTTP Server
  • ЛАМПА (комплект ПО)
  • Список модулей Apache
  • Список пакетов бесплатного и открытого программного обеспечения
  • POSSE проект
  • suEXEC
  • Apache Tomcat - еще один веб-сервер, разработанный Apache Software Foundation

Ссылки [ править ]

  1. ^ «О проекте HTTP-сервера Apache» . Фонд программного обеспечения Apache . Архивировано 7 июня 2008 года . Проверено 25 июня 2008 .
  2. ^ "Выпуски · apache / httpd · GitHub" . GitHub . Дата обращения 7 августа 2020 .
  3. ^ "Архивная копия" . Архивировано из оригинала на 2016-03-02 . Проверено 27 февраля 2016 .CS1 maint: заархивированная копия как заголовок ( ссылка )
  4. ^ «Языки» . HTTP-сервер Apache . Программное обеспечение Black Duck. Охлох. Архивировано из оригинального 7 -го апреля 2014 года . Проверено 2 апреля 2014 года .
  5. ^ «Компиляция и установка» . httpd.apache.org . Фонд программного обеспечения Apache . Дата обращения 9 мая 2016 .
  6. ^ «Дистрибутивы OS / Linux с использованием Apache» . secure1.securityspace.com . Проверено 17 сентября 2018 .
  7. ^ «Примечания к платформе - HTTP-сервер Apache версии 2.4» . httpd.apache.org . Проверено 21 января 2019 .
  8. ^ "Безопасный веб-сервер" . vmssoftware.com . Проверено 20 октября 2020 .
  9. ^ a b «Обновление до 2.4 с 2.2» . Поддержка платформ была удалена для BeOS, TPF и даже более старых платформ, таких как A / UX, Next и Tandem. Все равно считалось, что они сломаны.
  10. ^ «Порт Apache EBCDIC - HTTP-сервер Apache версии 2.4» . httpd.apache.org . Проверено 16 августа 2019 .
  11. ^ Доля рынка Netcraft для ведущих серверов во всех доменах, август 1995 г. - сегодня (обновляется ежемесячно)
  12. ^ «Обзор веб-сервера, февраль 2009 г.» . Netcraft . Архивировано 26 февраля 2009 года . Проверено 29 марта 2009 .
  13. ^ «Опрос веб-сервера, декабрь 2020 г.» . Новости Netcraft . Проверено 27 января 2021 .
  14. ^ «Статистика использования и рыночная доля веб-серверов, январь 2021 г.» . w3techs.com . Проверено 27 января 2021 .
  15. ^ «Информация о проекте HTTP-сервера Apache» . 1997-04-15. Архивировано из оригинального 15 апреля 1997 года.
  16. ^ «Часто задаваемые вопросы о сервере Apache» . Архивировано из оригинала на 1997-01-06 . Проверено 15 января 2017 года .
  17. ^ Макмиллан, Роберт (15 апреля 2000 г.). «Сила Apache» . Журнал Linux . Архивировано из оригинала 28 января 2019 года.
  18. ^ "Apache Foundation" . www.apache.org . Проверено 22 августа 2018 .
  19. ^ "Apache Docs" . httpd.apache.org . Проверено 22 августа 2018 .
  20. ^ «Что такое веб-сервер Apache? Webopedia» . webopedia.com .
  21. ^ "Учебное пособие по HTTP-серверу Apache: файлы .htaccess" . Apache.org.
  22. ^ "mod_proxy" . Apache.org.
  23. ^ "mod_proxy_balancer" . Apache.org.
  24. ^ "Диспетчер балансира" . Apache.org.
  25. ^ «Аутентификация и авторизация» . Apache.org.
  26. ^ "mod_rewrite" . Apache.org.
  27. ^ "mod_headers" . Apache.org.
  28. ^ "mod_sed" . Apache.org.
  29. ^ "mod_substitute" . Apache.org.
  30. ^ «Учебное пособие по Apache httpd: Введение в серверные компоненты» . Apache.org.
  31. ^ "mod_usertrack" . Apache.org.
  32. ^ «Учебник Apache: динамический контент с CGI» . Apache.org.
  33. ^ "Пользовательские веб-каталоги" . Apache.org.
  34. ^ «Выражения в HTTP-сервере Apache» . Apache.org.
  35. ^ "mod_status" . Apache.org.
  36. ^ "mod_xml2enc" . Apache.org.
  37. ^ "Модуль Apache: mod_ftp" . Apache.org.
  38. ^ «Обслуживание статических файлов: сравнение Apache, Nginx, Varnish и G-WAN» . Спут! .
  39. ^ "рабочий - HTTP-сервер Apache версии 2.2" . apache.org .
  40. ^ Apache httpd 2.4
  41. ^ «Выбор прокси-сервера» .
  42. ^ «Оценка пропускной способности Apache 2.4.1» .
  43. ^ «Производительность Apache 2.4 с событием MPM по сравнению с Nginx» . eschrade.com .
  44. ^ «Лицензия Apache, версия 2.0» . Фонд программного обеспечения Apache. Январь 2004 . Проверено 21 мая 2013 .
  45. ^ Бертон, Ричард Энтони. «К вашему сведению: Apache HTTP Server 2.0.49 выпущен» . Группа новостейalt.apache.configuration . Проверено 16 февраля 2018 .
  46. ^ де Раадт, Тео (18 февраля 2004 г.). «Новая лицензия apache» . openbsd-misc (список рассылки) . Проверено 21 мая 2013 .
  47. ^ «Политика авторских прав» . OpenBSD . Проверено 12 мая 2013 .
  48. ^ "apache-httpd-openbsd-1.3.20140502p2 - OpenBSD улучшенная и защищенная версия Apache 1.3" . Порты OpenBSD . Проверено 28 декабря 2014 .
  49. Марвин, Роб (25 марта 2015 г.). «Внутри нового веб-сервера httpd OpenBSD» . SD Times . Дата обращения 12 октября 2019 .
  50. ^ «Руководство по обновлению OpenBSD: с 5.1 до 5.2» . openbsd.org .
  51. ^ jj, изд. (2014-03-14). «Внимание! Apache удален с базы» . OpenBSD Journal .
  52. ^ «Руководство по обновлению OpenBSD: с 5.5 до 5.6» . openbsd.org .
  53. ^ "Объявление: Apache 1.3.0 выпущен!" . 1998-06-06 . Проверено 6 января 2015 .
  54. ^ «Выпущен Apache HTTP Server 1.3.42 (последний выпуск 1.3.x)» . apache.org .
  55. ^ "Официальный выпуск: Apache 2.0.35 теперь GA" . 2002-04-06 . Проверено 6 января 2015 .
  56. ^ «[Объявление] Выпущен Apache HTTP Server 2.0.65» . apache.org .
  57. ^ "Apache HTTP Server 2.2.0 выпущен" . 2005-12-01 . Проверено 6 января 2015 .
  58. ^ «[Объявление] Выпущен Apache HTTP Server 2.2.34» . apache.org .
  59. ^ «[ОБЪЯВЛЕНИЕ] Выпущен Apache HTTP Server 2.4.1» . 2012-02-21 . Проверено 17 июля 2015 .
  60. ^ "Apache HTTP Server 2.4.46 выпущен" . apache.org .
  61. ^ Группа документации. «О проекте HTTP-сервера Apache - Проект HTTP-сервера Apache» . apache.org .
  62. ^ Проект с открытым исходным кодом HTTP-сервера Apache на Ohloh. (nd). Охлох, сеть с открытым исходным кодом. Проверено 12 ноября 2012 г.
  63. ^ «Глава 4. HTTP-сервер Apache» . fedoraproject.org .
  64. ^ "Slowloris HTTP DoS" . Архивировано 26 апреля 2015 года . Проверено 26 июня 2009 года .CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  65. ^ "mod_noloris: защита от DoS" . Мыльница niq . Проверено 7 января 2012 года .
  66. ^ "mod_reqtimeout" . Apache.org . Проверено 3 июля 2013 .

Внешние ссылки [ править ]

  • Официальный веб-сайт