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

Установка Apache с официальных репозиториев и проверка запуска
На Ubuntu Apache можно установить с официальных репозиториев. Тем самым Apache будет получать стабильные обновления и корректно интегрироваться с системой.
- Первое, что вам нужно сделать, это обновить индексы пакетов apt с помощью этой команды: sudo apt update.
- Далее, установите Apache с помощью: sudo apt install apache2.
- Перезагрузите систему.
- Проверьте статус Apache командой: systemctl status apache2.
Если сервер работает корректно, то при открытии браузера, а затем переходе по IP-адресу сервера или ссылке http://localhost, вы увидите стандартную страницу Apache.
Как устроена структура каталогов Apache в Ubuntu
Понимание структуры каталогов упрощает оптимизацию веб-сервера. Ниже вы найдете небольшой список-гайд по каталогам Apache:
- /etc/apache2/ — основной каталог конфигурации
- /etc/apache2/apache2.conf — главный конфигурационный файл
- /etc/apache2/sites-available/ — конфигурации виртуальных хостов
- /etc/apache2/sites-enabled/ — активированные виртуальные хосты
- /etc/apache2/mods-available/ и mods-enabled/ — модули
- /var/www/ — корневая директория сайтов
- /var/log/apache2/ — логи доступа и ошибок
Управление службой Apache через systemctl: старт, рестарт, автозапуск
Apache полностью интегрирован с systemd. Вот основные команды в этом направлении:
- sudo systemctl start apache2
- sudo systemctl stop apache2
- sudo systemctl restart apache2
- sudo systemctl reload apache2
Для включения автозапуска при загрузке системы, вы можете выполнить:
sudo systemctlenable apache2
Обычно, команда reload предпочтительнее restart, если вы меняли только конфигурацию — она перечитывает настройки без разрыва текущих соединений.
Читайте также: SPF, DKIM и DMARC: пошаговая настройка защиты доменной почты
Настройка виртуальных хостов под несколько сайтов
Виртуальные хосты позволяют размещать несколько сайтов на одном сервере.
Вот пример конфигурации:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example
<Directory /var/www/example>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
Для активации сайтов используйте:
sudo a2ensite example.conf sudo systemctl reload apache2
Каждый сайт получает собственные логи, что упрощает диагностику и мониторинг.

Конфигурирование портов и обработка сетевых подключений
Порты настраиваются в файле /etc/apache2/ports.conf.
Пример:
Listen 80 Listen 443
Для нестандартных портов (например, 8080) необходимо:
- Добавить Listen 8080.
- Указать порт в <VirtualHost *:8080>.
- Открыть порт в firewall (ufw):
sudo ufw allow 8080
Часто спрашивают: Первичный DNS: ключевая роль в работе домена и настройке сайта
Подключение модулей Apache и оптимизация их нагрузки
Apache использует модульную архитектуру.
Управление модулями осуществляется через следующие команды:
sudo a2enmod rewrite sudo a2dismod status
Для оптимизации нагрузки модулей Apache:
- Отключайте неиспользуемые модули.
- Выбирайте подходящий MPM (event предпочтителен для повышенной нагрузки).
- Ограничивайте количество рабочих процессов.
Настройка прав доступа и безопасности файлов
Убедитесь, что права файлов и каталогов настроены корректно:
sudochown -R www-data:www-data /var/www/example
sudochmod -R 755 /var/www/example
Некоторые рекомендации:
- Не давать прав на запись всем пользователям.
- Отключать листинг каталогов: в виртуальном хосте добавьте Options -Indexes.
- Ограничивать доступ к конфигурационным и скрытым файлам.
Включение HTTPS и интеграция сертификатов SSL
Для HTTPS активируйте модуль SSL:
sudo a2enmod ssl
Наиболее распространённый вариант — использование бесплатных сертификатов Let’s Encrypt через certbot:
sudo apt install certbot python3-certbot-apache
sudo certbot –apache
Certbot автоматически создаёт SSL-конфигурацию, настраивает редирект от HTTP на HTTPS, и добавляет автообновление сертификатов.
Диагностика ошибок и анализ логов сервера
Логи — ключ к выявлению проблем и производительности:
- /var/log/apache2/error.log — ошибки конфигурации и выполнения.
- /var/log/apache2/access.log — все запросы к веб-серверу.
Полезные команды:
- tail -f /var/log/apache2/error.lo – показывает ошибки Apache в реальном времени.
- grep “404” /var/log/apache2/access.lo – находит все HTTP-запросы с кодом ответ 404 (Not Found).
Для проверки конфигурации перед перезапуском используйте:
apachectl configtest
Регулярный анализ логов позволяет выявлять:
- Ошибки приложений;
- Проблемы с правами доступа;
- Сетевые и SSL-сбои;
- Подозрительную активность;