Apache

Apache — свободный HTTP веб-сервер, названый в честь группы племён североамериканских индейцев апачей. Также является сокращением от англ. a patchy server. Среди русскоязычных пользователей общепринято искажённое апач.

Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

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

Архитектура веб-сервера

Название элемента: Описание:
Ядро

Функциональные возможности:

  • обработка конфигурационных файлов,
  • протокол HTTP,
  • система загрузки модулей.

Разрабатывается Apache Software Foundation.

Написана на языке программирования C.

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

Уровни конфигурации:

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

Мультипроцессорные модули Основные модели симметричной мультипроцессорности:
  • worker (Linux, FreeBSD) для средне загруженных серверов.
  • pre-fork (Linux, FreeBSD) обеспечивает безопасность и стабильность за счёт изоляции процессов друг от друга, сохранение совместимости со старыми библиотеками, не поддерживающими threads.
  • perchild (Linux) для высоко нагруженных серверов, дает возможность запуска дочерних процессов используя другое имя пользователя для повышения безопасности.
  • netware (Novell, Netware) для серверов Novell Netware.
  • winnt (Miscosoft Windows) для серверов под управлением Microsoft Windows.
  • Apache-ITK (Linux, FreeBSD) для хостинговых серверов, серверов, критичных к изоляции пользователей и учёту ресурсов.
  • peruser (Linux, FreeBSD) обеспечивает повышенную безопасность, работу с библиотеками, не поддерживающими threads.
Система модулей В модулях реализуется:
  • Поддержка языков программирования
  • Добавление функций
  • Исправление ошибок или модификация основных функций
  • Усиление безопасности
Механизм виртуальных хостов

Позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имен), отображая для каждого из них собственное содержимое.

Функциональные возможности Apache

Интеграция с другим ПО и языками программирования.

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

К ним относятся:

  • PHP (mod_php).
  • Python (mod python, mod wsgi).
  • Ruby (apache-ruby).
  • Perl (mod perl).
  • ASP (apache-asp).
  • Tcl (rivet).

Кроме того, Apache поддерживает механизмы CGI и FastCGI, что позволяет исполнять программы на практически всех языках программирования, в том числе C, C++, Lua, sh, Java.