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.
[править] Примечания
- ↑ April 2007 Netcraft. Проверено 1 мая 2007 г.
[править] См. также
- VertrigoServ — дистрибутив для Windows, включающий Apache.
- XAMPP — дистрибутив для Linux, Solaris, Windows и Mac OS X, включающий Apache.
- LAMP — комплект из Linux, Apache, MySQL,PHP и пр.
[править] Ссылки
- Официальный сайт «The Apache Software Foundation»(англ.)
- Установка и настройка
- Архитектура Apache. Проект «The Apache Modeling Project»(русск.)
- Проект по переводу документации к Apache на русский
- Проект Russian Apache c поддержкой нескольких кодировок
- Джентельменский набор веб-разработчика
- Архив конференции RU.APACHE (о веб-cеpвеpе Apache)
[править] Литература
- Скотт Хокинс Администрирование Web-сервера Apache и руководство по электронной коммерции = Apache Web Server Administration and e-Commerce Handbook. — М.: «Вильямс», 2001. — С. 336. ISBN 0-13-089873-2

