Apache

Apache HTTP-сервер (произносится / Ə.p?.ʧi / ) - открытый веб Интернет для UNIX -подобных, Microsoft Windows, Novell NetWare и других операционных систем. На сегодня употребляемым Веб сервером Интернет [1].

Apache разрабатывается и поддерживается сообществом разработчиков открытого программного обеспечения под руководством Apache Software Foundation.


1. История и название

Сервер Apache создан в начале 1995 года сообществом независимых разработчиков "Apache Group", члены которой в свое время принимали участие в проекте по построению первых Web-серверов NCSA (National Center for Supercomputer Applications, USA). "Apache Group" предлагает Web-серверы, совместимые с любой UNIX-системе, установленной на любой аппаратной платформе. Сервер перенесен и на другие операционные системы. Так, уже сейчас Apache Web-сервер доступен для OS / 2, UNIX -платформ, Windows 2000 и др..

Web-сервер Apache, как и все другие Web-серверы, базируется на идеях и части кода, реализованных в первом по-настоящему популярному Web-сервере - NCSA httpd 1.3.

Есть два объяснения названия проекта. Согласно Apache Foundation, название проекта было выбрано из уважения к коренному племени американского континента апачей, которые были известны за свою выносливость и воинское мастерство. Однако, первый FAQ на сайте проекта Apache Server с 1996 до 2001 утверждал, что "название" Apache "происходит от аббревиатуры" А PAtCHy server ", что дословно переводится как" заплатанный сервер "- сервер, в код которого внесен ряд серьезных изменений. " Первое объяснение было подтверждено на Конференции Apache и в интервью 2000 с Брайаном Беглендорфом, который, тем не менее, опроверг это утверждение в интервью 2007 года, заявляя, что "сервер Apache не назван в честь племени Джеронимо" .

Версия 2 веб-сервера Apache была существенным переписи большой части кода программы версии 1.x, с сильным упором на дальнейшее модульность и портативность. Версия 2.2 имеет гибкий API авторизации. Она также включает улучшенные модули кэша и прокси сервера.


2. Возможности

Web-сервер Apache является самостоятельным, некоммерческим, свободно распространяемым продуктом. Продукт поддерживает множество возможностей, многие из которых реализованы как скомпилированные модули, которые расширяют основные функциональные возможности. Они отличаются от серверной поддержки языков программирования схемам аутентификации. Существуют интерфейсы для поддержки языков программирования Perl, Python, Tcl и PHP.

Популярные методы сжатия на Apache включают внешний модуль mod_gzip, созданный для уменьшения размера веб-страниц, передаваемых по HTTP.

Функции виртуального хостинга позволяют одной инсталляции Apache обслуживать различные веб-сайты. Например, одна машина, с одной установкой Apache может одновременно содержать www.example.com, www.test.com, test47.test-server.test.com и так далее.


3. Использование

Apache прежде используется для передачи через HTTP статических и динамических веб-страниц во всемирной паутине. Многие веб-приложений спроектирован, учитывая среду и возможности, которые предоставляет этот веб-сервер.

Продукт может работать в качестве кэшируемого прокси, что позволяет существенно повысить производительность работы пользователей локальной сети при работе с документами, расположенными в Интернет. Можно задавать такие параметры и настройки прокси-сервера:

  • типы файлов, которые необходимо кэшировать или наоборот, не включать в кэш
  • максимальный объем дискового пространства, отведенный под кэш
  • периодический просмотр и индексирование базы данных кэша с целью высвобождения дискового пространства путем удаления устаревших объектов.

Apache сыграл ключевую роль в начальном росте всемирной паутины, и продолжает быть популярным в мире веб-сервером, де-факто платформой, на которую ориентируются другие веб-серверы.

Согласно статистике [2] Netcaft за июнь 2008 года, Apache является наиболее распространенным серверным программным обеспечением в Сети: на этот веб приходилась доля около 49% соответствующего сегмента рынка (почти 85 млн сайтов). Второе место по популярности занимают программные платформы Microsoft - 35,4% (61 млн сайтов).


4. Архитектура

4.1. Ядро

Ядро Apache включает в себя основные функции, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов.

Теоретически, ядро ​​apache может функционировать в чистом виде, без использования модулей. Однако, функциональность такого решения крайне ограничено.

Ядро Apache полностью написано на языке программирования C.

4.2. Система конфигурации

Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:

  • Конфигурация сервера ( httpd.conf).
  • Конфигурация виртуального хоста (httpd.conf c версии 2.2 extra / httpd-vhosts.conf).
  • Конфигурация уровня директории (. Htaccess).

Имеет собственный язык конфигурационных файлов, основанный на блоках директив. Практически все параметры ядра могут быть изменены через файлы. Большая часть модулей имеет собственные параметры.

Часть модулей использует в своей работе конфигурационные файлы операционной системы (например / etc / passwd и / etc / hosts).

Кроме этого, параметры могут быть заданы через ключи командной строки.


4.3. Мультипроцесувальни модели (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. Не использует нити. Обеспечение повышенной безопасности, работа с библиотеками, не поддерживаются нити. Стабильная версия от 4 октября 2007 года, экспериментальная - от 10 сентября 2009 года.

Примечания

  1. "April 2008 Web Server Survey". Netcraft . Проверено 2008-04-23 .
  2. June 2008 Web Server Survey

См.. также