| Apache HTTP Server | |
|---|---|
| Логотип Apache | |
| Тип | сервер , демон и веб-сервер |
| Разработчик | Apache Software Foundation[1] |
| Написана на | Си[4][5][6] |
| Операционная система | кроссплатформенность |
| Языки интерфейса | английский |
| Первый выпуск | 1995 |
| Последняя версия |
|
| Альфа-версия |
|
| Лицензия | Apache License 2.0[7] |
| Сайт | httpd.apache.org (англ.) |
| Медиафайлы на Викискладе | |
Apache HTTP-сервер (произносится /ə.ˈpæ.ʧi/ , назван именем группы племён североамериканских индейцев апачей; кроме того, является искажённым сокращением от англ. a patchy server ; среди русских пользователей общепринято переводное апа́ч) — свободный веб-сервер.
Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.
Содержание
- Содержание
- История [ править | править код ]
- Архитектура [ править | править код ]
- Функциональные возможности [ править | править код ]
- Скачать Apache для Windows
- Официальный сайт Apache
- Как настроить Apache на Windows
- Что может веб-сервер в Windows
- Версии Apache для Windows
- Сборка Apache + PHP + MySQL + phpMyAdmin
- Contents
- Name [ edit ]
- Feature overview [ edit ]
- Performance [ edit ]
- Licensing [ edit ]
Содержание
История [ править | править код ]
Сервер был написан в начале 1995 года и считается, что его имя восходит к шуточному названию «a patchy» (с англ. — «заплаточка»), так как он устранял ошибки популярного тогда сервера Всемирной паутины NCSA HTTPd 1.3. В дальнейшем, с версии 2.х, сервер был переписан заново и теперь не содержит кода NCSA. На данный момент разработка ведётся в ветке 2.4, а в версиях 1.3, 2.0 и 2.2 производятся лишь исправления ошибок безопасности. На текущий момент последняя версия ветки 2.4 — 2.4.41 (14 августа 2019), для первой версии это 1.3.42.
Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.
С апреля 1996 и до настоящего времени является самым популярным HTTP-сервером в Интернете. Статистика Netcraft показывает следующие данные об использовании Apache:
- в августе 2007 года он работал на 51 % всех веб-серверов[8]
- в мае 2009 года — на 46 % [9]
- в январе 2011 года — на 59 %, то есть более чем на 160 млн сайтов [10]
- в январе 2016 года — на 33,56 %, то есть более чем на 304 млн сайтов [11] .
Apache имеет долю рынка в России до 17,45 %. Это самый популярный веб-сервер после NGINX с долей рынка 64,89 % [12] .
Архитектура [ править | править код ]
Ядро [ править | править код ]
Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов.
Теоретически ядро apache может функционировать в чистом виде, без использования модулей. Однако функциональность такого решения крайне ограничена.
Ядро Apache полностью написано на языке программирования C.
Система конфигурации [ править | править код ]
Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:
- Конфигурация сервера (httpd.conf).
- Конфигурация виртуального хоста (httpd.conf c версии 2.2, extra/httpd-vhosts.conf).
- Конфигурация уровня каталога (.htaccess).
Имеет собственный язык конфигурационных файлов, основанный на блоках директив. Практически все параметры ядра могут быть изменены через конфигурационные файлы, вплоть до управления MPM. Большая часть модулей имеет собственные параметры.
Часть модулей использует в своей работе конфигурационные файлы операционной системы (например /etc/passwd и /etc/hosts).
Помимо этого, параметры могут быть заданы через ключи командной строки.
Многопроцессорные модели (MPM) [ править | править код ]
Для веб-сервера Apache существует множество моделей симметричной многопроцессорности. Вот основные из них:
| Название | Разработчик | Поддерживаемые OS | Описание | Назначение | Статус |
|---|---|---|---|---|---|
| worker | Apache Software Foundation | Linux, FreeBSD | Гибридная многопроцессорно-многопоточная модель. Сохраняя стабильность многопроцессорных решений, она позволяет обслуживать большое число клиентов с минимальным использованием ресурсов. | Среднезагруженные веб-серверы. | Стабильный. |
| pre-fork | Apache Software Foundation | Linux, FreeBSD | MPM, основанная на предварительном создании отдельных процессов, не использующая механизм threads. | Большая безопасность и стабильность за счёт изоляции процессов друг от друга, сохранение совместимости со старыми библиотеками, не поддерживающими threads. | Стабильный. |
| perchild | Apache Software Foundation | Linux | Гибридная модель, с фиксированным количеством процессов. | Высоконагруженные серверы, возможность запуска дочерних процессов используя другое имя пользователя для повышения безопасности. | В разработке, нестабильный. |
| netware | Apache Software Foundation | Novell NetWare | Многопоточная модель, оптимизированная для работы в среде NetWare. | Серверы Novell NetWare | Стабильный. |
| winnt | Apache Software Foundation | Microsoft Windows | Многопоточная модель, созданная для операционной системы Microsoft Windows. | Серверы под управлением Windows Server. | Стабильный. |
| Apache-ITK | Steinar H. Gunderson | Linux, FreeBSD | MPM, основанная на модели prefork. Позволяет запуск каждого виртуального хоста под отдельными uid и gid. | Хостинговые серверы, серверы, критичные к изоляции пользователей и учёту ресурсов. | Стабильный. |
| peruser | Sean Gabriel Heacock | Linux, FreeBSD | Модель, созданная на базе MPM perchild. Позволяет запуск каждого виртуального хоста под отдельными uid и gid. Не использует потоки. | Обеспечение повышенной безопасности, работа с библиотеками, не поддерживающими threads. | Стабильная версия от 4 октября 2007 года, экспериментальная — от 10 сентября 2009 года. |
Система модулей [ править | править код ]
Apache HTTP Server поддерживает модульность. Существует более 500 модулей [13] , выполняющих различные функции. Часть из них разрабатывается командой Apache Software Foundation, но основное количество — отдельными open source-разработчиками.
Модули могут быть как включены в состав сервера в момент компиляции, так и загружены динамически, через директивы конфигурационного файла.
В модулях реализуются такие вещи, как:
- Поддержка языков программирования.
- Добавление функций.
- Исправление ошибок или модификация основных функций.
- Усиление безопасности.
Часть веб-приложений, например панели управления ISPmanager и VDSmanager реализованы в виде модуля Apache.
Механизм виртуальных хостов [ править | править код ]
Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое.
Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK, позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid.
Также существуют модули, позволяющие учитывать и ограничивать ресурсы сервера (CPU, RAM, трафик) для каждого виртуального хоста.
Функциональные возможности [ править | править код ]
Интеграция с другим ПО и языками программирования [ править | править код ]
Существует множество модулей, добавляющих к Apache поддержку различных языков программирования и систем разработки.
К ним относятся:
Кроме того, Apache поддерживает механизмы CGI и FastCGI, что позволяет исполнять программы на практически всех языках программирования, в том числе C, C++, Lua, sh, Java.
Безопасность [ править | править код ]
Apache имеет различные механизмы обеспечения безопасности и разграничения доступа к данным. Основными являются:
- Ограничение доступа к определённым каталогам или файлам.
- Механизм авторизации пользователей для доступа к каталогу на основе HTTP-аутентификации (mod_auth_basic) и digest-аутентификации (mod_auth_digest).
- Ограничение доступа к определённым каталогам или всему серверу, основанное на IP-адресах пользователей.
- Запрет доступа к определённым типам файлов для всех или части пользователей, например запрет доступа к конфигурационным файлам и файлам баз данных.
- Существуют модули, реализующие авторизацию через СУБД или PAM.
В некоторых MPM-модулях присутствует возможность запуска каждого процесса Apache, используя различные uid и gid с соответствующими этим пользователям и группам пользователей.
Также существует механизм suexec, используемый для запуска скриптов и CGI-приложений с правами и идентификационными данными пользователя.
Для реализации шифрования данных, передающихся между клиентом и сервером, используется механизм SSL, реализованный через библиотеку OpenSSL. Для удостоверения подлинности веб-сервера используются сертификаты X.509.
Существуют внешние средства обеспечения безопасности, например mod_security.
Интернационализация [ править | править код ]
Начиная с версии 2.0 появилась возможность определения сервером локали пользователя. Сообщения об ошибках и событиях, посылаемые браузеру, теперь представлены на нескольких языках и используют SSI-технологию.
Также, можно реализовать средствами сервера отображение различных страниц для пользователей с различными локалями. Apache поддерживает множество кодировок, в том числе Unicode, что позволяет использовать страницы, созданные в любых кодировках и на любых языках.
Обработка событий [ править | править код ]
Администратор может установить собственные страницы и обработчики для всех HTTP ошибок и событий, таких как 404 (Not Found) или 403 (Forbidden). В том числе существует возможность запуска скриптов и отображения сообщений на разных языках.
Server Side Includes [ править | править код ]
В версиях 1.3 и старше был реализован механизм Server Side Includes, позволяющий динамически формировать HTML-документы на стороне сервера.
Управлением SSI занимается модуль mod_include, включённый в базовую поставку Apache.
Apache – это веб-сервер под Windows. На веб-сервере можно размещать сайты и открывать их на своём или на других компьютерах так, будто они находятся в Интернете.
Apache является бесплатным, у него открыт исходный код, сервер гибок в настройке.

Скачать Apache для Windows
Последней версией Apache для Windows является 2.4.39, она вышла 31 марта 2019 года.
Ссылки для скачивания:
Убедитесь, что у вас установлена последняя версия Visual C++ Redistributable for Visual Studio 2015-2019, которая необходима для работы Apache в Windows (версия 14.22.27821.0 и выше):
Официальный сайт Apache
Официальным сайтом веб-сервера Apache является: https://httpd.apache.org/
Но данный сайт содержит только исходный код и не распространяет бинарные (исполнимые) файлы. Если вы не можете самостоятельно скомпилировать файлы из исходного кода, то вы можете скачать их с рекомендуемого сайта.
Официально рекомендованным источником исполнимых файлов является Apache Lounge. Именно с на его файлы даны ссылки чуть выше.
Как настроить Apache на Windows
Настройка Apache выполняется в текстовых файлах, а для запуска нужно использовать командную строку – для пользователей Windows это может оказаться непривычным. Ситуация осложняется тем, что подсказки в конфигурационных файлах на английском языке, а веб-сервер в случае ошибки выводит очень мало информации.
Если вам нужен только веб-сервер без дополнительных модулей, то вы можете ограничиться базовой настройкой.
Если вы хотите ещё быстрее получить готовый веб-сервер, то к вашим услугам сборки, которые включают все необходимые компоненты и настройки.
Особенностью Apache, PHP и других компонентов веб-сервера является то, что все эти программы являются портативными, т.е. вам достаточно скачать сборку, распаковать её, кликнуть батник для запуска служб и вы через секунду получаете рабочий, правильно настроенный веб-сервер на Microsoft Windows.
Что может веб-сервер в Windows
Веб-сервер на локальном компьютере может абсолютно всё, что умеют веб-сервера на хостингах. Веб-сервер подойдёт для разработки и тестирования сайтов и веб-приложений использующих, например, AJAX. Именно веб-сервер позволит вам работать со структурой веб-сайта так, будто бы он уже размещён на хостинге.
Вы можете подключат и использовать при тестировании и разработке:
- модули Apache (например, mod_rewrite)
- PHP (требуется дополнительная установка)
- базы данных (требуется дополнительная установка)
Версии Apache для Windows
В настоящее время актуальной веткой Apache является 2.4.*. Предыдущее поколение Apache 2.2.* является устаревшим и больше не поддерживается. Новые версии, исправления ошибок и патчи безопасности начиная с 2018 года выпускаются теперь только для Apache 2.4. Именная эта версия предоставлена для скачивания на этом сайте.
Сборка Apache + PHP + MySQL + phpMyAdmin
Если вы хотите в несколько кликов получить работающий веб-сервер Apache + PHP + MySQL + phpMyAdmin на Windows, то скачайте готовую сборку, которая включает полностью настроенный для Windows веб-сервер, который достаточно распаковать и запустить кликом по ярлыку.
![]()
| Original author(s) | Robert McCool |
|---|---|
| Developer(s) | Apache Software Foundation |
| Initial release | 1995 ; 24 years ago ( 1995 ) [1] |
| Stable release | 2.4.41 (August 14, 2019 ; 3 months ago ( 2019-08-14 ) ) [±] |
| Repository | Apache HTTP Server Repository |
| Written in | C, [2] XML [3] |
| Operating system | Unix-like, Microsoft Windows [4] |
| Type | Web server |
| License | Apache License 2.0 |
| Website | httpd .apache .org |
The Apache HTTP Server, colloquially called Apache ( / ə ˈ p æ tʃ i / ə- PATCH -ee), is free and open-source cross-platform web server software, released under the terms of Apache License 2.0. Apache is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation.
The vast majority of Apache HTTP Server instances run on a Linux distribution, [5] but current versions also run on Microsoft Windows [6] and a w >[7] NetWare, OS/2 and other operating systems, [8] including ports to mainframes. [9]
Originally based on the NCSA HTTPd server, development of Apache began in early 1995 after work on the NCSA code stalled. Apache played a key role in the initial growth of the World W >[10] quickly overtaking NCSA HTTPd as the dominant HTTP server, and has remained most popular since April 1996. In 2009, it became the first web server software to serve more than 100 million websites. [11] As of August 2019 [update] , it was estimated to serve 29% of all active websites, ranked 2nd after nginx at 32%, and 32% of the top million websites, ranked 2nd after "Other" with 33%. [12]
Contents
Name [ edit ]
A number of explanations for the origin of the Apache name have been offered over the years.
From the inception of the Apache project in 1995 the official documentation stated: [13] [14]
Apache is a cute name which stuck. It was based on some existing code and a series of software patches, a pun on “A PAtCHy” server.
In an April 2000 interview, Brian Behlendorf, one of the creators of Apache sa >[15]
The name literally came out of the blue. I wish I could say that it was something fantastic, but it was out of the blue. I put it on a page and then a few months later when this project started, I pointed people to this page and said: "Hey, what do you think of that idea?" . Someone said they liked the name and that it was a really good pun. And I was like, "A pun? What do you mean?" He said, "Well, we’re building a server out of a bunch of software patches, right? So it’s a patchy Web server." I went, "Oh, all right." . When I thought of the name, no. It just sort of connotated: "Take no prisoners. Be kind of aggressive and kick some ass."
Since 2013 the Apache Foundation has explained the origin of the name as: [16]
The name ‘Apache’ was chosen from respect for the various Native American nations collectively referred to as Apache, well-known for their superior skills in warfare strategy and their inexhaustible endurance. It also makes a cute pun on "a patchy web server"—a server made from a series of patches—but this was not its origin. The group of developers who released this new software soon started to call themselves the "Apache Group".
When Apache is running under Unix, its process name is httpd , which is short for "HTTP daemon". [17]
Feature overview [ edit ]
Apache supports a variety of features, many implemented as compiled modules which extend the core functionality. These can range from authentication schemes to supporting server-side programming languages such as Perl, Python, Tcl and PHP. Popular authentication modules include mod_access, mod_auth, mod_digest, and mod_auth_digest, the successor to mod_digest. A sample of other features include Secure Sockets Layer and Transport Layer Security support (mod_ssl), a proxy module (mod_proxy), a URL rewriting module (mod_rewrite), custom log files (mod_log_config), and filtering support (mod_include and mod_ext_filter).
Popular compression methods on Apache include the external extension module, mod_gzip, implemented to help with reduction of the size (weight) of web pages served over HTTP. ModSecurity is an open source intrusion detection and prevention engine for Web applications. Apache logs can be analyzed through a Web browser using free scripts, such as AWStats/W3Perl or Visitors.
Virtual hosting allows one Apache installation to serve many different websites. For example, one computer with one Apache installation could simultaneously serve example.com , example.org , test47.test-server.example.edu , etc.
Apache features configurable error messages, DBMS-based authentication databases, content negotiation and supports several graphical user interfaces (GUIs).
It supports password authentication and digital certificate authentication. Because the source code is freely available, anyone can adapt the server for specific needs, and there is a large public library of Apache add-ons. [18]
A more detailed list of features is provided below:
- Loadable Dynamic Modules
- Multiple Request Processing modes (MPMs) including Event-based/Async, Threaded and Prefork.
- Highly scalable (easily handles more than 10,000 simultaneous connections)
- Handling of static files, index files, auto-indexing and content negotiation
- .htaccess per-directory configuration support [19]
- Reverse proxy with caching [20]
- Load balancing[21] with in-band health checks
- Multiple load balancing mechanisms
- Fault tolerance and Failover with automatic recovery
- WebSocket, FastCGI, SCGI, AJP and uWSGI support with caching
- Dynamic configuration [22]
Performance [ edit ]
Instead of implementing a single architecture, Apache prov >[ clarification needed ]
For delivering static pages, Apache 2.2 series was cons >[36] To address this issue, the Apache developers created the Event MPM, which mixes the use of several processes and several threads per process in an asynchronous event-based loop. [37] [ clarification needed ] This architecture as implemented in the Apache 2.4 series performs at least as well as event-based web servers, according to Jim Jagielski and other independent sources. [38] [39] [40] However, some independent but significantly outdated benchmarks show that it is still half as fast as nginx, e.g. [41]
Licensing [ edit ]
The Apache HTTP Server codebase was relicensed to the Apache 2.0 License (from the previous 1.1 license) in January 2004, [42] and Apache HTTP Server 1.3.31 and 2.0.49 were the first releases using the new license. [43]
The OpenBSD project d >[44] [45] [46] They initially replaced it with Nginx, and soon after made their own replacement, OpenBSD Httpd, based on the relayed project. [47] [48] [49] [50]
Versions [ edit ]
Version 1.1: The Apache License 1.1 was approved by the ASF in 2000: The primary change from the 1.0 license is in the ‘advertising clause’ (section 3 of the 1.0 license); derived products are no longer required to include attribution in their advertising materials, only in their documentation.
Version 2.0: The ASF adopted the Apache License 2.0 in January 2004. The stated goals of the license included making the license easier for non-ASF projects to use, improving compatibility with GPL-based software, allowing the license to be included by reference instead of listed in every file, clarifying the license on contributions, and requiring a patent license on contributions that necessarily infringe a contributor’s own patents.






