e Что такое Apache и где он используется
Категории Облако

Что такое Apache и где он используется

При создании сайта часто в первую очередь приобретается домен и хостинг (либо сервер). Однако кроме этого требуется веб-сервер — программное обеспечение, которое устанавливается на сервер и позволяет вашему сайту отображаться в интернете. В статье мы расскажем о популярной программе под названием Apache HTTP Server.

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

Для начала подробнее разберем понятие веб-сервера.

Веб-сервер — это программное обеспечение или оборудование, которое выступает посредником между пользователем и хостингом (хранилищем файлов запрашиваемого сайта).

Обычно схема работы веб-сервера включает в себя три этапа:

  1. Получение запроса от браузера.
  2. Поиск и подготовка информации для ответа.
  3. Передача ответа браузеру для дальнейшей обработки.

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

Чаще всего для создания веб-серверов используются:

  • Nginx — популярный веб-сервер от российских разработчиков,
  • Lighttpd — веб-сервер для скоростной работы с данными,
  • IIS — веб-сервер от Microsoft,
  • Apache HTTP Server — ниже мы расскажем о нем подробнее,
  • LiteSpeed Web Server — альтернатива Apache.

Источник: Shutterstock. Apache HTTP Server — одна из самых популярных программ для настройки веб-серверов

Что такое Apache

Apache Software Foundation — это организация-фонд, которая помогает развитию программ линейки Apache. В число поддерживаемых программ входит и Apache HTTP Server.

Apache HTTP Server — это свободное программное обеспечение, которое используется для создания веб-сервера. Чаще всего оно используется для крупномасштабных проектов и считается наиболее популярным среди всех веб-серверов. В повседневной жизни Apache HTTP Server часто называют просто Apache. Для удобства, далее в статье мы будем называть этот веб-сервер так же.

Усовершенствованием и поддержкой Apache занимается сообщество разработчиков. Кроме сообщества поддержку оказывает Apache Software Foundation — организация-фонд, которая помогает развитию программ линейки Apache.

Первоначальная версия Apache была разработана в 1995 году. Изначально она была предназначена для устранения ошибок сервера Всемирной паутины NCSA HTTPd 1.3. По этой причине название Apache получило ироничную расшифровку «a patchy», которая переводится с английского как «в заплатках».

По мере развития сети Интернет появилась новая версия Apache — 2.x (символом x обозначен номер ветки). На этом этапе программа была полностью переписана, а также из нее был удален код NCSA. Последний релиз веб-сервера Apache состоялся 17 июля 2024 года: в этот день была представлена версия 2.4.62.

Особенности Apache

Apache, как и любое другое программное обеспечение, имеет свои индивидуальные характеристики. Начнем с преимуществ:

  1. Открытый исходный код, благодаря которому можно бесплатно скачивать Apache и менять его функционал. Открытость кода позволяет создать большое количество уникальных конфигураций этого веб-сервера.
  2. Масштабируемость. Apache позволяет размещать несколько сайтов на одном виртуальном хостинге или VPS.
  3. Кроссплатформенность. Apache можно установить на большинство популярных операционных систем: Windows, macOS, а также ОС семейства Linux.
  4. Легкая настройка. Вы можете скорректировать настройки веб-сервера в любой момент. Если возникают трудности, поможет официальная документация.

Что касается недостатков, их всего два:

  1. Требовательность к ресурсам. Apache потребляет больше ресурсов в сравнении с другими веб-серверами. Поэтому когда к серверу поступает большое количество запросов, Apache может работать медленнее обычного.
  2. Уязвимости в сложных конфигурациях. Если к Apache подключено слишком большое количество модулей, конфигурация усложняется и появляются слабые места по части безопасности.

Обычно, чтобы сгладить слабые стороны Apache, его устанавливают в связке с другим веб-сервером. Зачастую таким «напарником» выступает Nginx — веб-сервер, который используется для создания обратного прокси и работы со статическим контентом. Например, на виртуальном хостинге Рег.ру настроена связка Apache+Nginx — это помогает сайтам работать максимально эффективно.

Источник: Shutterstock. Открытый исходный код Apache позволяет создавать уникальные конфигурации веб-сервера

Как устроен Apache

Ядро

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

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

Конфигурация веб-сервера

Конфигурация Apache регулируется при помощи конфигурационных файлов текстового формата. Обычно используется два файла конфигурации:

  • httpd.conf — для управления параметрами веб-сервера и виртуальными хостами.
  • .htaccess — для управления настройками на уровне папки.

Многопроцессные модули

Для Apache создано большое количество MPM (Multi-Processing Module), которые реализуют модель симметричной многопроцессорности.

Разберем наиболее популярные виды модулей мультипроцессорной обработки:

  1. PreFork позволяет запускать несколько изолированных процессов одновременно. При этом каждый отдельный запрос обрабатывается в пределах одного процесса.
  2. Worker создает большое количество потоков для каждого отдельно созданного процесса. В этом случае один запрос обслуживается одним потоком. Этот модуль помогает обработать больше запросов, чем PreFork.
  3. Event способен поддерживать несколько соединений одновременно. Это доступно благодаря тому, что модуль передает часть запросов вспомогательным модулям.

Настройка виртуальных хостов

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

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

Установка Apache

Установка Apache не отнимает много времени — часто она занимает несколько минут. Чтобы установить веб-сервер:

1. Подключитесь к серверу по протоколу SSH.

2. Обновите пакеты, поочередно выполнив команды:

sudo apt update
sudo apt upgrade

3. Установите Apache:

sudo apt install apache2

После запуска команды введите пароль суперпользователя и нажмите Y, чтобы продолжить установку.

4. Откройте файл конфигурации:

sudo nano /etc/apache2/apache2.conf

5. Добавьте строку следующего вида:

ServerName domain.ru

Вместо domain.ru укажите ваше доменное имя.

Также в этой строке можно указать IP-адрес сервера. В этом случае строка будет иметь вид:

ServerName 123.123.123.123

Вместо 123.123.123.123 необходимо указать IP-адрес вашего сервера.

Сохраните изменения при помощи сочетания клавиш Сtrl+O и закройте файл комбинацией Сtrl+X.

6. Проверьте синтаксис файла конфигурации:

sudo apache2ctl configtest

Если файл настроен корректно, вы получите вывод с текстом Syntax OK.

7. Перезапустите Apache — так изменения вступят в силу:

sudo systemctl restart apache2

Источник: Shutterstock. Для Apache создано большое количество модулей мультипроцессорной обработки

Настройка Apache

В качестве примера мы рассмотрим настройку модуля PreFork. Чтобы включить его:

1. Подключитесь к серверу по протоколу SSH.

2. Активируйте модуль, который вам нужен:

sudo a2enmod mpm_prefork

Вместо mpm_prefork укажите название необходимого модуля.

3. Отключите другие модули. Для этого поочередно выполните команды:

sudo a2dismod mpm_worker
sudo a2dismod mpm_event

Вместо mpm_worker и mpm_event укажите названия модулей, которые вам не нужны.

4. Активируйте mod_rewrite:

sudo a2enmod rewrite

5. Перезапустите Apache с помощью команды:

sudo systemctl restart apache2

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

Apache — это самый популярный веб-сервер. Однако выбирать такую программу необходимо под потребности вашего сайта или проекта: например, для сайтов на CMS или любых других ресурсов с преобладанием динамического контента.

Похожие публикации

Что такое аккредитация

Выделиться среди сотен, а то и тысяч конкурентов бывает непросто. В таких случаях аккредитация становится…

16 часов назад

Что такое ОКТМО, как его получить и где нужно указывать

В России насчитывается больше трех сотен населенных пунктов с названием Александровка. Чуть меньше в стране…

18 часов назад

Должностная инструкция: зачем нужна и как составить ее правильно

Часто в трудовом договоре указаны должность и общие требования, а детали обязанностей сотруднику устно объясняет…

2 дня назад

Как заполнять табель учета рабочего времени

Данные о каждом пропущенном рабочем дне и каждом отработанном часе собираются и хранятся, чтобы каждый…

2 дня назад

Что такое акт о приемке выполненных работ КС-2 и как его составить

Исполнитель, закончив работу, сдает ее заказчику. Оба довольны результатом и подтверждают, что все, что от…

2 дня назад

Что такое УИН: для чего он нужен и где его найти

Госорганам ежедневно поступают десятки, а то и сотни тысяч платежей от граждан и бизнеса. Ничего…

3 дня назад