Категории

Apache HTTP Server

Apache HTTP Server – безплатен уеб сървър (HTTPD). Apache е междуплатформен софтуер, поддържа операционни системи Linux, BSD, Mac OS X, Microsoft Windows, Novell NetWare, BeOS.

Основните предимства на Apache са надеждността и гъвкавостта на конфигурацията. Той позволява да се свързват външни модули за предоставяне на данни, да се използва СУБД за удостоверяване на потребителите, да се модифицират съобщенията за грешки и т.н….. Той поддържа IPv6.

Архитектура Apache HTTP Server

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

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

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

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

Има собствен език на конфигурационните файлове, базиран на блокове от директиви. Практически всички параметри на ядрото могат да се променят чрез конфигурационни файлове, до и включително управлението MPM.. Повечето модули имат свои собствени параметри.

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

Освен това параметрите могат да се задават чрез клавиши от командния ред.

За уеб сървъра Apache има много модели на симетрична мултипроцесорна обработка. Ето основните от тях:

Apache HTTP Server поддържа модулност. Съществуват повече от 500 модула, изпълняващи различни функции. Някои от тях са разработени от екипа на Apache Software Foundation, но по-голямата част от тях са разработени от отделни open source- разработчици.

Модулите реализират такива неща като:

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

За всеки виртуален хост можете да задавате собствени настройки на ядрото и модула, да ограничавате достъпа до целия сайт или до отделни файлове. Някои MPM, като например Apache-ITK, ви позволяват да стартирате процеса httpd за всеки виртуален хост с отделни идентификатори uid и guid.

Също така има модули, които ви позволяват да разглеждате и ограничавате ресурсите на сървъра (CPU, RAM, трафик) за всеки виртуален хост.

Функционалност Apache HTTP Server

Има много модули, които добавят към Apache поддръжка на различни езици за програмиране и системи за разработка.

Те включват:

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

Apache има различни механизми за осигуряване на сигурност и диференциране на достъпа до данни. Основните от тях са: 1:

Някои модули на MPM-включват възможност за изпълнение на всеки процес на Apache с помощта на различни uid и gid със съответните потребители и потребителски групи.

Също така има механизъм suexec, който се използва за стартиране на скриптове и CGI-приложения с потребителски права и идентичности.

За осъществяване на криптиране на данните, предавани между клиента и сървъра, се използва механизмът SSL, реализиран чрез библиотеката OpenSSL., за удостоверяване на уеб сървъраизползват се сертификати X.509.

Съществуват външни функции за сигурност, напр mod_security.

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

Също така е възможно да се приложат сървърни средства за показване на различни страници за потребители с различни локали. Apache поддържа много кодировки, включително Unicode, което позволява да се използват страници, създадени във всяка кодировка и на всеки език.

Администраторът може да задава потребителски страници и обработващи програми за всички HTTP грешки и събития, като например 404 (Not Found ) или 403 (Forbidden). Възможно е също така да се изпълняват скриптове и да се показват съобщения на различни езици.

Във версиите 1.3 и по-стари е реализиран механизъм Server Side Includes, който позволява динамично генериране на HTML-документи от страна на сървъра.

Управлението на SSI се извършва от модула mod_include, включен в основния пакетApache.

Категории: Сървъри, Уеб Сървъри

Реклама