Интернет магазин китайских планшетных компьютеров



Компьютеры - Apache - Архитектура

08 мая 2011


Оглавление:
1. Apache
2. Архитектура
3. Функциональные возможности



Ядро

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

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

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

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

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

  • Конфигурация сервера.
  • Конфигурация виртуального хоста.
  • Конфигурация уровня директории.

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

Система модулей

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

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

В модулях реализуются такие вещи, как:

  • Поддержка языков программирования.
  • Добавление функционала.
  • Исправление ошибок или модификация основных функций.
  • Усиление безопасности.

Часть веб-приложений, например панели управления ISPmanager и VDSmanager реализованы в виде модуля Apache.

Механизм виртуальных хостов

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

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

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



Просмотров: 3764


<<< .htpasswd
Apache Tomcat >>>