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

 

Установка Apache с официальных репозиториев и проверка запуска

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

  1. Первое, что вам нужно сделать, это обновить индексы пакетов apt с помощью этой команды: sudo apt update.
  2. Далее, установите Apache с помощью: sudo apt install apache2.
  3. Перезагрузите систему.
  4. Проверьте статус 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. Вот основные команды в этом направлении:

  1. sudo systemctl start apache2
  2. sudo systemctl stop apache2
  3. sudo systemctl restart apache2
  4. 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) необходимо:

  1. Добавить Listen 8080.
  2. Указать порт в <VirtualHost *:8080>.
  3. Открыть порт в 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 — все запросы к веб-серверу.

Полезные команды:

  1. tail -f /var/log/apache2/error.lo – показывает ошибки Apache в реальном времени.
  2. grep “404” /var/log/apache2/access.lo – находит все HTTP-запросы с кодом ответ 404 (Not Found).

Для проверки конфигурации перед перезапуском используйте:

apachectl configtest

Регулярный анализ логов позволяет выявлять:

  • Ошибки приложений;
  • Проблемы с правами доступа;
  • Сетевые и SSL-сбои;
  • Подозрительную активность;