stringtranslate.com

HTTP-сервер Apache

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

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

Первоначально основанный на HTTPd- сервере NCSA, разработка Apache началась в начале 1995 года после того, как работа над кодом NCSA застопорилась. [10] Apache сыграл ключевую роль в начальном росте Всемирной паутины , [11] быстро обогнав NCSA HTTPd как доминирующий HTTP- сервер. В 2009 году оно стало первым программным обеспечением веб-сервера, обслуживающим более 100 миллионов веб-сайтов . [12]

По оценкам Netcraft , по состоянию на март 2022 года Apache обслуживал 23,04% миллиона самых загруженных веб-сайтов, а Nginx — 22,01%; Cloudflare с 19,53% и Microsoft Internet Information Services с 5,78% замыкают четверку лидеров. По некоторым другим показателям Netcraft Nginx опережает Apache. [13] Согласно обзору всех веб-сайтов, проведенному W3Techs, в июне 2022 года Apache занял второе место с 31,4%, Nginx — первое с 33,6%, а Cloudflare Server — третье с 21,6%. [14]

Имя

По данным Apache Software Foundation , его название было выбрано «из уважения к различным индейским народам, называемым апачами , известными своими превосходными навыками в военной стратегии и неиссякаемой выносливостью». [15] Это было в контексте, в котором казалось, что открытый Интернет, основанный на свободном обмене открытым исходным кодом, вскоре стал объектом своего рода завоевания со стороны поставщика проприетарного программного обеспечения Microsoft ; Один из создателей апачей Брайан Белендорф – создатель названия – считал, что его усилия в некоторой степени аналогичны усилиям Джеронимо , вождя последнего из свободных народов апачей. [16] [17] Однако оно признало, что это название «также представляет собой забавную игру слов на тему «неоднородный веб-сервер » — сервер, созданный из серии патчей ».

Существуют и другие источники теории «неоднородного» каламбура в программном обеспечении, в том числе официальная документация проекта от 1995 года, в которой говорилось: «Apache — милое имя, которое прижилось. Оно было основано на некотором существующем коде и серии программных исправлений, каламбур на Сервер «ПАЧИ». [18] [19]

Но в интервью в апреле 2000 года Белендорф заявил, что происхождение Apache не было каламбуром, заявив: [20]

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

В январе 2023 года базирующаяся в США некоммерческая организация Natives in Tech обвинила Apache Software Foundation в культурном присвоении и призвала их изменить название фонда, а, следовательно, и названия проектов программного обеспечения, которые он размещает. [21] [22]

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

Обзор функций

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. [24]

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

Производительность

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

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

Лицензирование

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

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

Версии

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

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

Разработка

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

В Apache 2.4 прекращена поддержка платформ BeOS , TPF , A/UX , NeXT и Tandem . [8]

Безопасность

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

Смотрите также

Рекомендации

  1. ^ «О проекте HTTP-сервера Apache» . Фонд программного обеспечения Apache . Архивировано из оригинала 7 июня 2008 года . Проверено 25 июня 2008 г.
  2. ^ «[ОБЪЯВЛЕНИЕ] Выпущен HTTP-сервер Apache 2.4.58» . 19 октября 2023 г. Проверено 19 октября 2023 г.
  3. ^ «Индекс Apache Software Foundation: проекты по индексу языков программирования» . Архивировано из оригинала 02 марта 2016 г. Проверено 27 февраля 2016 г.
  4. ^ «Компиляция и установка». httpd.apache.org . Фонд программного обеспечения Apache. Архивировано из оригинала 7 мая 2016 года . Проверено 9 мая 2016 г.
  5. ^ «Дистрибутивы ОС/Linux с использованием Apache» . secure1.securityspace.com . Архивировано из оригинала 18 сентября 2018 г. Проверено 17 сентября 2018 г.
  6. ^ «Примечания для конкретных платформ — HTTP-сервер Apache версии 2.4» . httpd.apache.org . Архивировано из оригинала 22 января 2019 г. Проверено 21 января 2019 г.
  7. ^ «Безопасный веб-сервер». vmssoftware.com . Архивировано из оригинала 22 октября 2020 г. Проверено 20 октября 2020 г.
  8. ^ ab «Обновление до 2.4 с 2.2». Архивировано из оригинала 10 мая 2021 г. Проверено 12 мая 2021 г. Поддержка платформ удалена для BeOS, TPF и даже более старых платформ, таких как A/UX, Next и Tandem. Считалось, что они все равно сломаны.
  9. ^ «Порт Apache EBCDIC — HTTP-сервер Apache версии 2.4» . httpd.apache.org . Архивировано из оригинала 27 февраля 2019 г. Проверено 16 августа 2019 г.
  10. ^ «О проекте HTTP-сервера Apache - Проект HTTP-сервера Apache» . httpd.apache.org . Проверено 8 февраля 2024 г.
  11. ^ Доля рынка Netcraft. Архивировано 20 мая 2010 г. на Wayback Machine для лучших серверов во всех доменах, август 1995 г. - сегодня (обновляется ежемесячно).
  12. ^ «Опрос веб-серверов за февраль 2009 г.» . Неткрафт . 18 февраля 2009 года. Архивировано из оригинала 26 февраля 2009 года . Проверено 29 марта 2009 г.
  13. ^ «Опрос веб-серверов, март 2022 г.» . Новости Неткрафта . 29 марта 2022 г. Архивировано из оригинала 28 мая 2022 г. Проверено 18 июня 2022 г.
  14. ^ «Статистика использования веб-серверов». w3techs.com . Архивировано из оригинала 25 июля 2023 г. Проверено 18 июня 2022 г.
  15. ^ «Фонд Apache». www.apache.org . Архивировано из оригинала 13 декабря 2021 года . Проверено 22 августа 2018 г.
  16. ^ «Документальный фильм «Триллионы и триллионы обслуживаемых» о Apache Software Foundation» . TheApacheFoundation/Youtube. 2020. Архивировано из оригинала 22 ноября 2021 г.
  17. ^ «Фонд доверия: построение будущего блокчейна: Брайан Белендорф». Фонд «Долгое время» / YouTube. 10.02.2020. Архивировано из оригинала 22 ноября 2021 г.
  18. ^ «Информация о проекте HTTP-сервера Apache» . 15 апреля 1997 г. Архивировано из оригинала 15 апреля 1997 года.
  19. ^ «Часто задаваемые вопросы по серверу Apache» . Архивировано из оригинала 6 января 1997 г. Проверено 15 января 2017 г.
  20. Макмиллан, Роберт (15 апреля 2000 г.). «Сила Апача». Журнал Линукс . Архивировано из оригинала 28 января 2019 года.{{cite web}}: CS1 maint: unfit URL (link)
  21. ^ Клэберн, Томас (11 января 2023 г.). «Коренные американцы просят фонд Apache сменить название» . Регистр . Архивировано из оригинала 12 января 2023 г. Проверено 12 января 2023 г.
  22. ^ Перди, Кевин (12 января 2023 г.). «Технологическая группа коренных народов просит Фонд Apache сменить название» . Арс Техника . Архивировано из оригинала 12 января 2023 г. Проверено 12 января 2023 г.
  23. ^ «Документы Apache». httpd.apache.org . Архивировано из оригинала 5 сентября 2018 года . Проверено 22 августа 2018 г.
  24. ^ «Веб-сервер Apache». webopedia.com . 23 марта 1998 г. Архивировано из оригинала 12 мая 2021 г. Проверено 12 мая 2021 г.
  25. ^ «Учебное пособие по HTTP-серверу Apache: файлы .htaccess» . Апач.орг. Архивировано из оригинала 25 февраля 2016 г. Проверено 19 февраля 2016 г.
  26. ^ "мод_прокси". Апач.орг. Архивировано из оригинала 29 июля 2018 г. Проверено 19 февраля 2016 г.
  27. ^ "mod_proxy_balancer". Апач.орг. Архивировано из оригинала 13 февраля 2016 г. Проверено 19 февраля 2016 г.
  28. ^ «Менеджер балансировки». Апач.орг. Архивировано из оригинала 4 марта 2016 г. Проверено 19 февраля 2016 г.
  29. ^ «Аутентификация и авторизация». Апач.орг. Архивировано из оригинала 31 января 2018 г. Проверено 19 февраля 2016 г.
  30. ^ "mod_rewrite". Апач.орг. Архивировано из оригинала 13 февраля 2016 г. Проверено 19 февраля 2016 г.
  31. ^ "mod_headers". Апач.орг. Архивировано из оригинала 21 февраля 2016 г. Проверено 19 февраля 2016 г.
  32. ^ "mod_sed". Апач.орг. Архивировано из оригинала 4 марта 2016 г. Проверено 19 февраля 2016 г.
  33. ^ "mod_substitute". Апач.орг. Архивировано из оригинала 4 марта 2016 г. Проверено 19 февраля 2016 г.
  34. ^ «Учебное пособие по Apache httpd: Введение в серверные включения» . Апач.орг. Архивировано из оригинала 18 февраля 2016 г. Проверено 19 февраля 2016 г.
  35. ^ "mod_usertrack". Апач.орг. Архивировано из оригинала 12 мая 2021 г. Проверено 12 мая 2021 г.
  36. ^ «Учебное пособие по Apache: динамический контент с помощью CGI» . Апач.орг. Архивировано из оригинала 15 ноября 2021 г. Проверено 19 февраля 2016 г.
  37. ^ «Веб-каталоги для каждого пользователя» . Апач.орг. Архивировано из оригинала 16 февраля 2016 г. Проверено 19 февраля 2016 г.
  38. ^ «Выражения на HTTP-сервере Apache» . Апач.орг. Архивировано из оригинала 29 февраля 2016 г. Проверено 19 февраля 2016 г.
  39. ^ "mod_status". Апач.орг. Архивировано из оригинала 13 февраля 2016 г. Проверено 19 февраля 2016 г.
  40. ^ «Модуль Apache: mod_ftp» . Апач.орг. Архивировано из оригинала 10 июля 2017 г. Проверено 08 июля 2017 г.
  41. ^ «Обслуживание статических файлов: сравнение Apache, Nginx, Varnish и G-WAN». Пятно! . 14 марта 2011 г. Архивировано из оригинала 24 апреля 2014 г. . Проверено 23 апреля 2014 г.
  42. ^ «Работник — HTTP-сервер Apache версии 2.2» . apache.org . Архивировано из оригинала 10 мая 2021 г. Проверено 12 мая 2021 г.
  43. ^ «Apache httpd 2.4» (PDF) . Архивировано (PDF) из оригинала 27 января 2012 г. Проверено 8 февраля 2012 г.
  44. ^ «Выбор прокси-сервера». 14 апреля 2014 года. Архивировано из оригинала 3 марта 2016 года . Проверено 19 февраля 2016 г.
  45. ^ «Оценка пропускной способности Apache 2.4.1» . 22 февраля 2012 г. Архивировано из оригинала 2 марта 2016 г. Проверено 19 февраля 2016 г.
  46. ^ «Производительность Apache 2.4 с событием MPM по сравнению с Nginx» . eschrade.com . 3 января 2014 г. Архивировано из оригинала 13 марта 2014 г. . Проверено 13 марта 2014 г.
  47. ^ «Лицензия Apache, версия 2.0» . Фонд программного обеспечения Apache. Январь 2004 г. Архивировано из оригинала 18 мая 2013 г. Проверено 21 мая 2013 г.
  48. ^ Бертон, Ричард Энтони. «К вашему сведению: выпущен Apache HTTP Server 2.0.49» . Группа новостей : alt.apache.configuration . Проверено 16 февраля 2018 г.
  49. де Раадт, Тео (18 февраля 2004 г.). «Новая лицензия Apache». openbsd-misc (список рассылки) . Проверено 21 мая 2013 г.
  50. ^ «Политика авторских прав». OpenBSD. Архивировано из оригинала 13 ноября 2017 г. Проверено 12 мая 2013 г.
  51. ^ «apache-httpd-openbsd-1.3.20140502p2 — OpenBSD улучшенная и защищенная версия Apache 1.3» . Порты OpenBSD . Архивировано из оригинала 02 марта 2015 г. Проверено 28 декабря 2014 г.
  52. Марвин, Роб (25 марта 2015 г.). «Внутри нового веб-сервера httpd OpenBSD». СД Таймс . Архивировано из оригинала 12 октября 2019 года . Проверено 12 октября 2019 г.
  53. ^ «Руководство по обновлению OpenBSD: с 5.1 до 5.2» . openbsd.org . Архивировано из оригинала 22 декабря 2017 г. Проверено 13 марта 2014 г.
  54. ^ Джей Джей, изд. (14 марта 2014 г.). «Внимание: Apache удален с базы» . Журнал OpenBSD . Архивировано из оригинала 18 октября 2014 г. Проверено 29 декабря 2014 г.
  55. ^ «Руководство по обновлению OpenBSD: с 5.5 до 5.6» . openbsd.org . Архивировано из оригинала 22 декабря 2014 г. Проверено 29 декабря 2014 г.
  56. ^ «Объявление: выпущен Apache 1.3.0!». 06.06.1998. Архивировано из оригинала 11 декабря 2018 г. Проверено 6 января 2015 г.
  57. ^ «Выпущен HTTP-сервер Apache 1.3.42 (окончательная версия 1.3.x)» . apache.org . Архивировано из оригинала 11 марта 2015 г. Проверено 6 января 2015 г.
  58. ^ «Официальный выпуск: Apache 2.0.35 теперь общедоступная» . 6 апреля 2002 г. Архивировано из оригинала 12 декабря 2018 г. Проверено 6 января 2015 г.
  59. ^ «[Объявление] Выпущен HTTP-сервер Apache 2.0.65» . apache.org . Архивировано из оригинала 28 июля 2015 г. Проверено 6 января 2015 г.
  60. ^ «Выпущен HTTP-сервер Apache 2.2.0» . 01 декабря 2005 г. Архивировано из оригинала 12 декабря 2018 г. Проверено 6 января 2015 г.
  61. ^ «[Объявить] Выпущен HTTP-сервер Apache 2.2.34» . apache.org . Архивировано из оригинала 21 августа 2020 г. Проверено 3 апреля 2019 г.
  62. ^ «[ОБЪЯВЛЕНИЕ] Выпущен HTTP-сервер Apache 2.4.1» . 21 февраля 2012 г. Архивировано из оригинала 12 февраля 2021 г. Проверено 17 июля 2015 г.
  63. ^ «Выпущен HTTP-сервер Apache 2.4.58» . apache.org . Архивировано из оригинала 25 октября 2017 г. Проверено 25 октября 2017 г.
  64. ^ Группа документации. «О проекте HTTP-сервера Apache - Проект HTTP-сервера Apache». apache.org . Архивировано из оригинала 7 июня 2008 г. Проверено 12 мая 2021 г.
  65. ^ «Проект с открытым исходным кодом HTTP-сервера Apache на Ohloh. (nd). Ohloh, сеть с открытым исходным кодом. Получено 12 ноября 2012 г.» Архивировано из оригинала 9 марта 2012 года . Проверено 8 февраля 2012 г.
  66. ^ «Глава 4. HTTP-сервер Apache» . Fedoraproject.org . Архивировано из оригинала 25 ноября 2012 г. Проверено 3 декабря 2012 г.
  67. Здрня, Боян (21 июня 2009 г.). «Инструмент защиты от DoS-атак Apache HTTP». Институт САНС . Архивировано из оригинала 12 ноября 2021 года . Проверено 12 ноября 2021 г.
  68. ^ "Slowloris HTTP DoS" . Архивировано из оригинала 26 апреля 2015 года . Проверено 26 июня 2009 г.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  69. ^ «mod_noloris: защита от DoS» . Мыльница Ника. Июль 2009 г. Архивировано из оригинала 8 октября 2011 г. Проверено 7 января 2012 г.
  70. ^ "mod_reqtimeout". Апач.орг. Архивировано из оригинала 3 июля 2013 г. Проверено 3 июля 2013 г.

Внешние ссылки