ProCloud Yandex
08.09.2023
читать 8 минут

Установка и настройка веб-сервера Apache

/upload/iblock/359/4m3df93yoa7x856b3rpgkbefindg1aqa/how-to-choose-the-best-cloud-computing-software-for-your-small-business_%281%29.jpg

В данной статье мы рассмотрим установку HTTP сервера Apache на OC Ubuntu, а также настройку виртуальных хостов, доступ по протоколу HTTPS.

Настройка виртуального сервера

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

После создания сервера подключаемся к нему по SSH и воспользуемся утилитой PuTTY. Данная утилита совершенно бесплатна и ее можно скачать с официального сайта. Единственная настройка на данном этапе – указать IP адрес нашего сервера в поле Host Name.

Установка и настройка веб-сервера Apache

Как только вы нажмете кнопку открыть, то эмулятор терминала осуществит попытку подключиться к серверу, для этого необходим лишь пароль и логин (root).

Установка Apache

На данном этапе мы будем выполнять установку от имени пользователя с правами администратора, используя SUDO для усиления прав. Первым делом следует обновить данные о текущих пакетах и их зависимостях.:

sudo apt update

Как только данная команда выполнена нам понадобится загрузить пакет Apache2:

sudo apt install apache2

По завершении демон начнет работу и появится в автозагрузке.

Настройка брандмауэра для Apache

В настройках по умолчанию Ubuntu использует ufw. Изначально нам нужно удостовериться в том, что утилита для настройки фаервола установлена:

sudo ufw status verbose

Появление ошибки означает отсутствие утилиты, в этом случае нужно произвести установку с помощью команды:

sudo apt install ufw

Уточним ее статус:

Status: inactive

Выполним активацию:

sudo ufw enable

Включаем на сервере HTTP протокол:

sudo ufw allow http

Также не забываем предоставить доступ по SSH:

sudo ufw allow 22/tcp

В конце выполним перезапуск:

sudo ufw reload

Запуск Apache и другие полезные команды

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

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

sudo systemctl status apache2

Возможно два исхода.

Активен:

apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running)

Неактивен:

apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: inactive (dead)

Далее рассмотрим команды для изменения статуса. Все команды одинаковы по структуре:

sudo systemctl [действие] apache2

Все действия перечислены в таблице ниже:

Включение start
Выключение stop
Перезапуск restart
Перезагрузка reload
Отключение автоматического запуска disable
Включение автоматической загрузки enable

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

С помощью модуля виртуальных хостов в Apache можно разместить несколько web-сервисов на одной машине, используя один ip-адрес, но разные доменные имена.

Для начала конфигурации запросим root-директорию:

grep "DocumentRoot" /etc/apache2/sites-available/000-default.conf

Добавим директории:

sudo mkdir -p /var/www/sample.net/html

Создадим html-документ и добавим ему структуру:

sudo touch /var/www/sample.net/html/index.html
sudo nano /var/www/sample.net/html/index.html

Для сохранения исходной конфигурации виртуального хоста, переносим её в ранее созданную директорию настроек нового виртуального хоста.

sudo cp /etc/apache2/sites-available/000-default.conf  /etc/apache2/sites-available/sample.net.conf

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

sudo nano /etc/apache2/sites-available/sample.net.conf

В файле виртуального хоста по-умолчанию нам важны следующие параметры:

  • <VirtualHost *:80>: Здесь прописываем IP-адрес сервера и порт для виртуального хоста. Поскольку используется HTTP и единственный IP, выбран порт 80 и IP не указан.
  • DocumentRoot /var/www/html: Это корневая директория виртуального хоста, где хранятся все файлы. Обязательно убедитесь, что указали путь к созданной директории: /var/www/sample.net/html
  • ErrorLog ${APACHE_LOG_DIR}/error.log: Это местоположение файла лога, куда будут записаны все ошибки сервера. Эту строку оставляем без изменений.
  • CustomLog ${APACHE_LOG_DIR}/access.log combined: Эта директива отвечает за логирование всех запросов пользователей к серверу. Оставляем ее в оригинальном виде.

После того как все настройки внесены, сохраняем файл и закрываем редактор.

Активируем созданный хост:

sudo a2ensite sample.net.conf

И выключим дефолтный:

sudo a2dissite 000-default.conf

Перезапустим сервер:

sudo systemctl reload apache2

Создание SSL-сертификата на сервере

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

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/server-sample.key -out /etc/ssl/certs/server-sample.crt

Далее нужно присоединить модуль SSL для Apache с помощью команды:

sudo a2enmod ssl

Выполним настройку HTTPS для виртуального хоста через его файл.

sudo nano /etc/apache2/sites-available/sample.net.conf

Изменяем директиву <VirtualHost *:80>, меняем порт на 443, добавляем SSLEngine on после root директории (необходимо для поддержки SSL).

И сразу же еще две строки, которые отображают путь к ключу и сертификату:

SSLCertificateFile /etc/ssl/certs/server-sample.crt
SSLCertificateKeyFile /etc/ssl/private/server-sample.key

Укажем разрешающее условие безопасности:

sudo ufw allow https

Перезапустим настройку сервера Apache:

sudo systemctl reload apache2

Заключение

На данном этапе можно полностью закончить настройку web-сервера Apache. Подводя итоги смело утверждаем, что настройка одного из самых распространенных серверов, а также получение к ней доступа по протоколу HTTPS изучено и реализовано.

Новости
18 апреля 202418.04.2024
читать 2 минутычитать 2 мин
Дайджест обновлений продуктов Q1
5 апреля 202405.04.2024
читать 1 минутучитать 1 мин
ProCloud CPO Диана Беда в рейтинге ИТ-лидеров от Global CIO
28 марта 202428.03.2024
читать 1 минутучитать 1 мин
Запуск новой локации: Казахстан