Apache

Apache («Апачи», Apache HTTP Server) — это открытое кросс-платформенное программное обеспечение для размещения и поддержки веб-сервера.

Логотип разработчика веб-сервера Apache

Для чего нужен Apache

Программное обеспечение позволяет:

  • открывать динамические PHP-страницы;
  • распределять нагрузку, поступающую на сервер;
  • обеспечивать отказоустойчивость сервера;
  • тренироваться в запуске PHP-скриптов и настройке сервера.

Как появился Apache

Apache — сокращенное название от “A patchy server”. В переводе с английского — «Сервер с патчами». Название появилось из-за происхождения программы. В первой половине 90-х годов прошлого века был популярен веб-сервер NCSA HTTPd. Когда его разработчик покинул проект, доработка ПО сильно замедлилась. В NCSA HTTPd было много ошибок. Другие авторы стали исправлять их и накладывать свои патчи. Патч — это кусок кода, информация или программный модуль, который устраняет недочеты разработчиков. Еще одно название — заплатки.

В 1995 году Брайан Белендорф создал команду разработчиков и объединил все патчи. Так была создана первая версия Apache. Сейчас веб-сервер обеспечивает работу примерно 32% сайтов в мире. Версии «Апачи» есть для разных операционных систем — Linux, Microsoft Windows, BSD, Mac OS, BeOSNovell, NetWare.

Что такое веб-сервер

Принципиальная схема работы веб-сервера

Программа-сервер — это посредник между серверным компьютером и браузером пользователя. Получив от клиента запрос, он находит нужную страницу в каталоге сайта и отправляет ее в ответ. Браузер анализирует присланный файл и преобразует его в веб-страницу, которую и видит пользователь. Схема работы выглядит так:

  1. Сервер работает на порту (обычно 80, 8080 или 8000, но иногда бывают и другие), который открыт для сторонних программ клиента, включая браузер пользователя.
  2. Когда на один из портов поступает запрос, программа сопоставляет его с внутренними инструкциями и правилами и решает, исполнять или нет.
  3. Если в правилах веб-сервера на запрос есть запрет, пользователь увидит код ошибки (404) или отказ в доступе к данным.
  4. После того как серверная программа исполнила запрос (успешно или с ошибкой), она переходит в режим ожидания.

Обмен данными между веб-сервером и браузером выполняется по протоколу HTTP (HyperText Transfer Protocol). Позже с его помощью стало можно передавать файлы всех видов. Сегодня используется усовершенствованная версия HTTPS с шифрованием трафика между клиентом и сервером.

Профессия


Системный администратор

Станьте универсальным специалистом по администрированию Linux с нуля и разверните собственный кластер.

Узнать подробности

Как работает Apache

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

Ядро

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

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

Модули — это отдельные программные блоки. Они подключаются к ядру веб-сервера и расширяют его функционал. С помощью модулей решаются узкоспециализированные задачи, например поддержка языков программирования, исправление ошибок, усиление безопасности, аутентификация и т.д. В настоящее время для веб-сервера Apache есть больше 500 модулей. Они могут входить в состав ПО при установке или подгружаться позже с помощью конфигурационного файла.

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

Это совокупность текстовых команд для изменения параметров ядра или добавления новых модулей. Благодаря им «Апачи» способен работать на нескольких уровнях:

  • всего сервера. На этом уровне реализуется работа веб-сервера в целом и обработка любых поступающих к нему запросов. Такие команды прописываются в файле httpd.conf;
  • виртуального хоста. На компьютере может размещаться несколько сайтов, управляемых с помощью одного веб-сервера. При этом каждому сайту выделяется отдельный виртуальный хост. Когда от пользователя поступает запрос, система определяет, на какой хост его отправить, откуда извлечь данные, как их обработать и т.д. Эти команды прописываются в конфигурационных файлах extra/httpd-vhosts.conf;
  • каталога. Конфигурационный файл этого уровня (.htaccess) контролирует доступ пользователя к данным в каталоге. Например, он позволяет предотвратить незаконную выгрузку списка товаров или финансовой отчетности с сайта интернет-магазина.

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

Преимущества «Апачи»

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

Кросс-платформенность. «Апачи» может работать на компьютерах под управлением Microsoft Windows, MacOS, Linux, специализированных сетевых BSD, Nevell NetWare. Функционал и администрирование веб-сервера на разных ОС остается таким же, различаются только процесс установки и расположение директорий с файлами.

Доступность. «Апачи» — ПО с открытым исходным кодом. Это значит, что каждый желающий может изучать, модифицировать и использовать веб-сервер для решения своих задач.

Функциональность. Возможности ядра можно расширить с помощью модулей для Apache. Одни поставляются вместе с инсталляционным пакетом, другие можно скачать дополнительно. 

Поддержка пользователей. «Апачи» известен на рынке уже более 25 лет. За это время было выпущено большое количество справочной документации, модульных комплектов, сценариев, примеров практического использования от официального разработчика и сторонних экспертов. Практически для любой проблемы, с которой может столкнуться пользователь при эксплуатации ПО, имеется готовое решение в Сети.

Масштабируемость. На Apache может работать как легкий одностраничный лендинг, так и масштабный интернет-магазин или информационный портал. При увеличении нагрузки на физический сервер можно установить второй «Апачи» на другом компьютере, подключить к нему тот же сайт и распределить трафик между двумя веб-серверами.

Поддержка языков программирования. Apache написан на C++, при этом есть множество модулей, которые добавляют поддержку разных языков программирования и систем разработки. Среди них Python, PHP, Ruby (apache-ruby), Tcl, Perl, ASP (apache-asp).  Apache поддерживает механизмы FastCGI и CGI, что позволяет исполнять программы почти на всех языках программирования, включая C, C++, sh, Lua, JavaScript

Недостатки Apache

Производительность. Из-за того что система при каждом запросе обращается к конфигурационным файлам, увеличивается время обработки. Это становится заметно при большой нагрузке на сервер — сайт на «Апачи» работает с каждым соединением по очереди и в такие моменты начинает ощутимо «тормозить». Однако этот недостаток можно частично устранить, отключив неиспользуемые модули.

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

Синтаксис конфигурационных файлов. В работе с ними пользователь постоянно имеет дело с большим количеством переменных. Это усложняет новичкам управление и настройку. Чтобы нивелировать недостаток, можно использовать специальный бесплатный инструмент Apache GUI.

Как работать на «Апачи»

Один из наиболее простых и распространенных способов организовать веб-сервер с помощью Apache — использовать программный пакет MAMP. Он включает сам Apache, менеджер баз данных, движок PHP и другие компоненты. Работа происходит следующим образом:

  1. Пользователь загружает версию пакета MAMP для своей ОС с официального сайта и устанавливает веб-сервер на компьютере.
  2. После установки он запускает программу и вводит команду Start.
  3. Система проинформирует пользователя о том, что сервер запущен, покажет его адрес и директорию, в которой размещены файлы (все это можно оставить по умолчанию или настроить самостоятельно).
  4. На странице http://localhost/MAMP/ пользователь может посмотреть всю информацию о веб-сервере, включая ключи и инструменты администрирования баз данных.

MAMP позволяет легко установить локальный веб-сервер, однако он не будет виден из интернета, если не подключена услуга выделенного публичного IP-адреса у провайдера. Настройка сайта, видимого из внешней сети, более сложная и требует больше времени.

Профессия

Системный администратор

Станьте универсальным junior-специалистом по Linux с нуля или отточите уже имеющиеся навыки.

  • разработаете собственный кластер;
  • сможете начать поиск работы уже во время обучения;
  • обменяетесь опытом с 250+ сокурсниками;
  • получите поддержку персонального ментора.

Узнать больше

 

Курсы по теме

(рейтинг: 5, голосов: 4)
Добавить комментарий