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