Купить Корзина
  • Облако и IT-инфраструктура
  • Домены и сайты
  • Вход
Получить консультацию

Ответим на вопросы, расскажем о конфигурациях, поможем с переносом, подберем оборудование, подготовим коммерческое предложение

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности

Персональный менеджер ответит на ваши вопросы и проведет через все этапы заключения договора: — подберет оборудование — сформирует коммерческое предложение — поможет с миграцией сервера к нам

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности

Или просто оставьте номер телефона, и мы перезвоним вам

  • Телефон в Москве

    +7 495 580-11-11
  • Бесплатный звонок по России

    8 800 555-34-78
  • Или обратитесь в наши офисы

    Региональные номера
    1. Документация
    2. Инструкции
    3. Облачные серверы
    4. Инструкции для UNIX-подобных операционных систем
    5. Как установить Nginx с поддержкой HTTP/2 на Ubuntu 22.04/24.04

    Как установить Nginx с поддержкой HTTP/2 на Ubuntu 22.04/24.04

    HTTP/2 — улучшенная версия протокола HTTP, предназначенная для передачи страниц между сервером и браузером. Ключевое ограничение предыдущей версии заключалось в последовательной обработке запросов: при загрузке веб-страницы, содержащей множество элементов (изображения, скрипты, стили), каждый следующий запрос ожидал завершения предыдущего.

    Протокол HTTP/2 устраняет это ограничение за счет параллельной передачи запросов и ответов в рамках одного TCP-соединения. Это критически важно для современных веб-приложений, которые могут запрашивать более 100 запросов для полной загрузки страницы.

    Основные изменения:

    • параллельные запросы и загрузка контента;
    • сжатые HTTP-заголовки;
    • передача данных в двоичной кодировке, а не в виде текста;
    • отправка данных по инициативе сервера (server push).

    Важно:

    HTTP/2 в современных браузерах работает только через защищенное соединение (HTTPS). Поэтому настройка SSL/TLS сертификата является обязательным условием для использования протокола

    1 этап. Подготовка сервера

    Для настройки HTTP/2 вам понадобятся:

    • виртуальный сервер в Рег.облаке с ОС Ubuntu 22.04/24.04;
    • действующий SSL-сертификат для вашего домена. В Рег.ру вы можете получить бесплатный SSL-сертификат для домена;
    • зарегистрированный и привязанный к вашему серверу домен: Как привязать домен к Облачному серверу.

    Создание пользователя

    В целях безопасности рекомендуется работать под учетной записью, не обладающей правами суперпользователя, но имеющей возможность их получения через sudo.

    • 1
      Подключитесь к серверу по протоколу SSH под пользователем root и создайте нового пользователя:
    adduser userName

    Где UserName — имя нового пользователя.

    Система запросит пароль и дополнительные данные (их можно оставить пустыми, нажав Enter).

    • 2
      Добавьте пользователя в группу sudo, чтобы он мог выполнять команды с привилегиями суперпользователя:
    usermod -aG sudo UserName
    • 3
      Завершите текущую сессию:
    exit
    • 4
      Выполните повторное подключение от имени созданного пользователя:
    ssh UserName@ваш_IP_сервера

    Готово, новый пользователь создан.

    Обновление операционной системы

    Перед установкой Nginx обновите список доступных пакетов из репозиториев:

    sudo apt update

    2 этап. Установка Nginx

    В официальных репозиториях Ubuntu 22.04/24.04 уже содержатся версии Nginx с поддержкой HTTP/2 (1.18+ и 1.24+ соответственно).

    • 1
      Установите Nginx командой:
    sudo apt install nginx -y
    • 2
      После завершения установки проверьте актуальную версию установленного Nginx:
    sudo nginx -v

    Пример вывода:

    nginx version: nginx/1.24.0 (Ubuntu)

    Готово, установка Nginx завершена.

    Если вам также необходима установка базы данных и PHP (Linux, Nginx, MySQL, PHP) воспользуйтесь инструкцией, пропустив установку Nginx.

    3 этап. Добавление SSL-сертификата

    Для добавления SSL-сертификата на сервер вам необходимы:

    • сертификат, корневой и промежуточный сертификаты. Если SSL-сертификат был заказан в Рег.ру, после его активации эти данные отправляются на контактный e-mail, а также они дублируются в личном кабинете в карточке услуги;
    • приватный ключ. Генерируется на этапе заказа сертификата. Рег.ру не хранит приватные ключи сертификатов. Мы рекомендуем сохранить ключ на локальном компьютере.
    • 1
      Создайте директорию для хранения SSL-сертификатов:
    sudo mkdir /etc/nginx/ssl
    • 2
      Создайте файл сертификата и откройте его для редактирования:
    sudo nano /etc/nginx/ssl/example.com.crt

    Вместо example.com укажите имя вашего домена, который привязан к серверу.

    • 3
      Вставьте в файл содержимое сертификата, за которым сразу (без пустых строк) следует содержимое промежуточного и корневого сертификатов. Сохраните файл.
    • 4
      Создайте файл приватного ключа:
    sudo nano /etc/nginx/ssl/example.com.key
    • 5
      Вставьте в файл содержимое приватного ключа SSL-сертификата. Сохраните его.

    Вместо example.com укажите имя вашего домена.

    4 этап. Редактирование конфигурации сайта для поддержки HTTP/2

    • 1
      Откройте файл конфигурации виртуального хоста (сайта) по умолчанию:
    sudo nano /etc/nginx/sites-available/default
    • 2
      Приведите содержимое блока server, отвечающего за обработку HTTPS-трафика, к следующему виду:
    server {
        # Прослушивание 443 порта с включением SSL и протокола HTTP/2
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        # Доменное имя сервера
        server_name example.com;
        # Пути к файлам сертификата и ключа
        ssl_certificate /etc/nginx/ssl/example.com.crt;
        ssl_certificate_key /etc/nginx/ssl/example.com.key;
        # Корневая директория документов
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        location / {
            try_files $uri $uri/ =404;
        }
    }

    Где:

    • listen 443 ssl http2 – указывает Nginx принимать соединения на 443-м порту, использовать SSL/TLS и поддерживать протокол HTTP/2;
    • ssl_certificate и ssl_certificate_key – задают пути к файлам сертификата и приватного ключа соответственно.
    • 3
      Затем сохраните файл.

    5 этап. Отключение устаревших шифров

    Отключение устаревших шифров в HTTP/2 необходимо для обеспечения безопасности и корректной работы протокола, поскольку многие старые алгоритмы имеют известные уязвимости и больше не считаются надежными. Современные браузеры по умолчанию используют TLS 1.2 и выше, а наличие устаревших шифров может вызывать ошибки при установлении соединения. Кроме того, актуальные алгоритмы лучше оптимизированы и обеспечивают более стабильную и быструю работу при параллельных запросах.

    • 1
      Создайте файл с общими настройками SSL:
    sudo nano /etc/nginx/snippets/ssl-params.conf
    • 2
      Внесите в него следующие директивы (основанные на рекомендациях Mozilla):
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
    ssl_ecdh_curve secp384r1;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    • 3
      Сохраните файл и закройте редактор.
    • 4
      Подключите созданный файл конфигурации в блок server файла /etc/nginx/sites-available/default:
    server {
        # Прослушивание 443 порта с включением SSL и протокола HTTP/2
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        # Доменное имя сервера
        server_name example.com;
        # Пути к файлам сертификата и ключа
        ssl_certificate /etc/nginx/ssl/example.com.crt;
        ssl_certificate_key /etc/nginx/ssl/example.com.key;
    # Подключение оптимизированных параметров SSL
        include snippets/ssl-params.conf;
        # Корневая директория документов
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        location / {
            try_files $uri $uri/ =404;
        }
    }

    6 этап. Перенаправление HTTP на HTTPS

    Для обеспечения доступа к сайту исключительно по защищенному протоколу необходимо настроить редирект с 80-го порта (HTTP) на 443-й (HTTPS). Добавьте в конец файла /etc/nginx/sites-available/default следующий блок:

    server {
        listen 80;
        listen [::]:80;
        server_name example.com;
        return 301 https://$server_name$request_uri;
    }

    Сохраните файл и закройте редактор.

    7 этап. Проверка конфигураций и перезапуск Nginx

    Перед сохранением изменений убедитесь в отсутствии синтаксических ошибок в файлах конфигурации:

    sudo nginx -t

    Если все верно, вывод будет примерно следующим:

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

    После успешной проверки выполните перезагрузку (или перезапуск) службы Nginx для применения новой конфигурации:

    sudo systemctl restart nginx

    Готово. Вы установили и настроили Nginx с поддержкой HTTP/2 на Ubuntu в Рег.облаке.

    8 этап. Проверка работоспособности HTTP/2

    Чтобы убедиться, что сайт работает с использованием протокола HTTP/2, выполните следующие действия:

    • 1
      В браузере перейдите по адресу вашего сайта, например, https://example.com.
    • 2
      Активируйте инструменты разработчика (F12).
    • 3
      Перейдите на вкладку Network (Сеть) и обновите страницу.
    • 4
      Найдите в списке загружаемых ресурсов первый запрос. Он, как правило, соответствует основному домену.
    • 5
      В столбце Protocol (если столбец не отображается, добавьте его через контекстное меню) должно быть указано h2.

    Если отображается h2, это означает, что протокол HTTP/2 успешно активирован и используется для соединения.

    Специальные предложения
    • Гранты для бизнеса до 500к
    • Скидки на cloud GPU до 50%
    • Скидки на bare-metal с А4000 и А5000
    • Кешбэк 100% на kubernetes
    Рассылка Рег.облака

    Лайфхаки, скидки и новости об IT

    Даю согласие на получение рекламных и информационных материалов

    Продукты и сервисы
    • Облачные серверы
    • Выделенные серверы
    • Базы данных
    • S3 хранилище
    • Кластеры Kubernetes
    • Cloud GPU
    • VPS
    Решения
    • Интернет-магазин в облаке
    • Разработка и тестирование в облаке
    • Удаленный рабочий стол
    • Работа с 1С
    • Корпоративное хранение данных
    • Искусственный интеллект и машинное обучение в облаке
    • Конфигуратор сервера
    • Администрирование серверов
    Техподдержка
    • Создать тикет
    • Документация
    Прочее
    • О компании
    • Партнерская программа
    • Гранты
    • Блог
    • Контакты
    • Отзывы клиентов
    • © ООО «РЕГ.РУ» Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
      • Политика конфиденциальности
      • Политика обработки персональных данных
      • Правила применения рекомендательных технологий
    • 8 800 333-92-23

      Бесплатный звонок по России

      +7 (495) 009‑92‑22

      Телефон в Москве

      • telegram
      • vk
      • vkvideo
      • vcru
      • moikrug
      • rbc
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера