Apache
Apache — веб-сервер, распространяемый бесплатно. Программное обеспечение — кроссплатформенный продукт, то есть работает на разных операционных системах (Linux, Windows, Solaris и др.).
Основные отличия от конкурентов — надежность и гибкость. Apache работает по принципу модулей. Клиент сначала устанавливает ядро, а потом подключает необходимые модули под свои задачи.
Принцип работы
Apache обрабатывает запросы клиент-сервер по протоколу HTTP. Веб-сервер имеет 3 модуля мультипроцессинга, которые отвечают за обработку запроса пользователя:
- Mpm_prefork создает на каждый запрос клиента создает отдельный процесс. Чем меньше процессов, тем быстрее обрабатываются задачи пользователя. Под каждый запрос на сервере выделяется объем оперативной памяти. Данный модуль обычно используют в паре с другими внешними компонентами, которые не умеют работать в многопоточном режиме, например, mod_php.
- Mpm_worker создает процессы, которые работают сразу с несколькими потоками. Один поток обрабатывает одно соединение пользователя. Модуль быстрее обрабатывает запросы пользователя и меньше нагружает ресурсы сервера.
- Mpm_event разработан для работы с постоянными (keep-alive) соединениями. Разделяет потоки на постоянные и активные, что позволяет повысить скорость обработки запросов пользователей.
Существуют модули, которые оптимизированы под семейство операционных систем. Например, модуль mpm_winnt работает с ОС Windows, mpm_netware — с Netware.
Особенности
Разработчики сделали Apache максимально доступным и простым в эксплуатации. Сообщество регулярно выпускает патчи и обновления.
Apache обладает функцией виртуализации. На одном IP-адресе может существовать множество виртуальных сайтов. Каждый хост настраивается под индивидуальные требования клиента: настройка прав доступа к файлам, ограничение потребление вычислительных мощностей физического сервера и др.
Для веб-сервера существуют модули, которые добавляют в ядро Apache поддержку других (СУБД написана на С) языков, например, PHP, Ruby, Perl.
У Apache есть ряд встроенных функций безопасности. К ним относятся система авторизации пользователей, ограничение доступа по IP-адресам, разграничение прав доступа к каталогам и файлам на сервере и т. д. Доступна функция запуска процессов на основании идентификаторов пользователей или группы.
При необходимости пользователь может зашифровать данные, передаваемые между сервером и клиентом, используя протокол SSL. Дополнительные функции защиты подключаются через модуль mod_security.
Веб-сервер Apache разработан для запуска сайта без лишних движений. Интуитивный интерфейс, модульная система, встроенные механизмы защиты и множество других функций делает его одним из самых популярных веб-серверов.