Apache
Веб-сервер Apache HTTP Server, а также имя фонда Apache Software Foundation, под которым выпущены Kafka, Spark и сотни других проектов.
Что такое Apache
Под словом «Apache» скрываются две разные вещи, и путаница из-за этого возникает постоянно:
- Apache HTTP Server (он же
httpd) — веб-сервер, выпущенный в 1995 году и много лет бывший самым популярным в интернете. Когда говорят «поставь апач» или «сайт на апаче» — речь о нём. - Apache Software Foundation (ASF) — некоммерческий фонд, под крылом которого разрабатываются сотни open source-проектов. Они не связаны с веб-сервером ничем, кроме имени фонда и лицензии Apache License 2.0: Kafka, Spark, Hadoop, Airflow, Cassandra, Tomcat, NiFi.
Дальше — по очереди о каждой.
Apache HTTP Server
Модульный веб-сервер: базовое ядро плюс подключаемые модули (mod_rewrite, mod_ssl, mod_php). Отдаёт статику, выполняет PHP, работает обратным прокси.
Ключевая архитектурная особенность — MPM (Multi-Processing Module), режим обработки соединений:
| MPM | Как работает | Комментарий |
|---|---|---|
prefork |
процесс на соединение | нужен для mod_php, самый прожорливый по памяти |
worker |
потоки внутри процессов | экономнее, требует потокобезопасных модулей |
event |
потоки + отдельная обработка keep-alive | современный выбор, ближе всего к Nginx |
Отсюда растёт классическое противопоставление Apache и Nginx: старые связки на prefork тратят на каждое соединение отдельный процесс, и на нескольких тысячах клиентов память заканчивается.
Apache vs Nginx
| Apache | Nginx | |
|---|---|---|
| Модель | процессы/потоки на соединение (MPM) | событийный цикл |
| Статика | медленнее | быстрее |
| Динамика (PHP) | mod_php внутри процесса |
только через php-fpm |
| Настройка на уровне папки | .htaccess |
нет, только основной конфиг |
| Типичная роль сегодня | backend за прокси | фронт, прокси, балансировщик |
Часто их ставят вместе: Nginx спереди отдаёт статику и терминирует TLS, Apache сзади обрабатывает PHP.
.htaccess — за что Apache любят на шаред-хостинге
.htaccess — файл с настройками, который кладётся прямо в папку сайта и действует на неё и вложенные. Не нужен root, не нужен перезапуск сервера: положил файл — правила заработали. Поэтому весь классический CMS-хостинг построен на Apache.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
<FilesMatch "\.(env|log|sqlite)$">
Require all denied
</FilesMatch>
Обратная сторона: Apache проверяет наличие .htaccess в каждой папке по пути запроса, и на нагруженном сайте это заметная цена.
Что такое Apache Kafka
Отдельный продукт фонда, к веб-серверу отношения не имеющий. Kafka — распределённый лог событий: приложения пишут в него сообщения, другие приложения их читают, причём сообщения хранятся заданный срок и могут быть прочитаны повторно. Используется для потоковой обработки данных, сбора логов и связи микросервисов. Подробности — в отдельной статье про Kafka.
Проверка и перезапуск
sudo apachectl configtest # проверить синтаксис конфига
sudo systemctl reload apache2 # Debian/Ubuntu
sudo systemctl reload httpd # RHEL-семейство
sudo a2enmod rewrite && sudo systemctl restart apache2
Имя пакета и службы отличается: в Debian и Ubuntu это apache2, в RHEL и AlmaLinux — httpd.
Связанные термины
- Nginx — главная альтернатива Apache HTTP Server
- Apache Kafka — брокер сообщений от того же фонда
- Локальный / веб-сервер — что вообще делает веб-сервер
- LEMP-стек — сборка, где место Apache занял Nginx
- Hadoop / Spark / Hive — другие проекты Apache Software Foundation
- Open Source — модель, по которой живёт фонд
Готовы запустить GPU-задачу?
Запустить GPU-сервер