Apache

Материал из BeneWiKi.

Перейти к: навигация, поиск
Apache HTTP Server
Логотип Apache
Тип Веб-сервер
Разработчик Apache Software Foundation
ОС Кроссплатформенное программное обеспечение
Текущая версия 2.2.4, 2.0.59, 1.3.37 — 10.01.2007
Лицензия Apache License GPL
Сайт httpd.apache.org

Apache HTTP-сервер (по-русски обычно произносят Апа́ч) — это веб-сервер с открытым исходным кодом. С апреля 1996 это самый популярный HTTP-сервер в Интернете; в апреле 2007 года он работал на 58 % всех веб-серверов[1].

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.

Недостатком наиболее часто называется отсутствие удобного стандартного интерфейса для администратора.

Сервер был написан в начале 1995 года и считается, что его имя восходит к шуточному названию «a patchy» (англ. заплаточный), так как он устранял ошибки популярного тогда сервера Всемирной паутины NCSA HTTPd 1.3. В дальнейшем, с версии 2.х сервер был переписан заново и теперь не содержит кода NCSA, но имя осталось. На данный момент разработка ведется в ветке 2.2, а в версиях 1.3 и 2.0 производятся лишь исправления ошибок безопасности.

Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.

Содержание

[править] Различия 1 и 2 версии

Версия 1 Версия 2
Для каждого запроса создается новый процесс Для каждого запроса создается новый поток или процесс


Многопоточность в UNIX

На UNIX системах, которые поддерживают потоки (нити) стандарта POSIX, Apache теперь может выполняться в гибридном многопроцессово-многопоточном режиме. Это способствует расширяемости системы для многих, но не для всех конфигураций.

Новая система сборки

Система сборки была полностью изменена, и теперь основывается на autoconf и libtool. Это делает процесс конфигурирования Apache более похожим на аналогичный процесс в других программных продуктах.

Поддержка различных протоколов

Apache теперь имеет специальную инфраструктуру, способную обслуживать различные протоколы. Модуль mod_echo был написан в качестве примера этому.

Улучшенная поддержка отличных от UNIX платформ

Apache 2.0 стал работать быстрее и надежнее на отличных от UNIX платформах, таких как: BeOS, OS/2 и Windows. С введением новых специфичных для каждой платформы мульти-процессных модулей (MPMs) и библиотеки Apache Portable Runtime (APR), эти платформы теперь поддерживаются с помощью их собственных API, что позволяется избежать введения зачастую неправильно работающих из-за большого количества ошибок POSIX - эмулирующих слоев.

Новый API для Apache

API для написания модулей значительно изменился в версии 2.0. Многие из проблем версии 1.3, связанные с порядком следования модулей и их приоритетами, должны исчезнуть. В версии 2.0 большая часть данной работы теперь делается сервером автоматически, а порядок следования модулей определяется отдельно в каждом хуке (hook), что делает процесс более гибким и конфигурируемым. Также были добавлены новые функции, которые предоставляют дополнительные возможности использования модулей, избавляя от необходимости внесения каких-либо изменений в ядро сервера.

Поддержка протокола IPv6

В системах, где протокол IPv6 поддерживается нижележащей библиотекой Apache Portable Runtime, Apache по умолчанию получает возможность слушать IPv6 сокеты. В добавок к этому директивы Listen, NameVirtualHost и VirtualHost могут работать с адресными строками, заданными в формате IPv6 (т.е. например "Listen [2001:db8::1]:8080").

Использование фильтров

Модули Apache теперь можно написать так, что они будут исполнять роль фильтров, обрабатывающих потоки данных, которые приходят или уходят из сервера. Это позволяет, к примеру, данным, являющимся результатом работы CGI-скрипта, быть обработанными SSI фильтром INCLUDES, предоставляемым модулем mod_include. Модуль mod_ext_filter позволяет внешним программам исполнять роль фильтров точно таким же образом, каким CGI программы действуют в качестве обработчиков (handlers).

Сообщения об ошибках на разных языках

Сообщения об ошибках, посылаемые браузеру, теперь представлены на нескольких языках и используют SSI технологию. Они могут быть легко отредактированы администратором под свои нужды.

Упрощенная конфигурация

Многие запутанные директивы были упрощены. Наиболее сбивающие с толку Port и BindAddress были убраны; для привязки к IP адресу используется только директива Listen; директива ServerName определяет имя сервера и номер порта теперь только для перенаправлений и работы с виртуальными хостами.

Поддержка юникода Windows NT

Apache 2.0 на Windows NT теперь использует кодировку utf-8 для работы с именами файлов. Это позволяет использовать нижележащую файловую систему, работающую в формате Unicode, что предоставляет поддержку сервером многоязычности для всех NT- систем, включая Windows 2000 и Windows XP. Это не распространяется на такие операционные системы, как Windows 95, 98 или ME, которые для обращения к файловой системе используют локальные кодовые страницы.

Новая библиотека для работы с регулярными выражениями

В состав Apache 2.0 была включена библиотека для работы с Perl-совместимыми регулярными выраженями (PCRE). Все регулярные выражения теперь используют более мощный синтаксис Perl 5.

[править] Примечания

  1. April 2007 Netcraft. Проверено 1 мая 2007 г.

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

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

[править] Литература

Шаблон:Apache

Личные инструменты