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

Получить консультацию

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

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

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

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

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

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

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

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

    Региональные номера
    1. База знаний
    2. Рег.облако
    3. Облачные серверы
    4. Установка программного обеспечения
    5. Как установить Nginx с поддержкой HTTP/2 на Ubuntu 18.04/20.04

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

    HTTP/2 — улучшенная версия протокола HTTP, предназначенная для передачи страниц между сервером и браузером. Основная проблема протокола HTTP 1.1 заключалась в ограниченной скорости передачи данных, так как загрузка происходила по частям и поочередно. Современные сайты могут совершать более 100 запросов для загрузки контента (JS/CSS файлы, изображения и пр.). Чтобы справиться с такой нагрузкой, был разработан протокол HTTP 2.

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

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

    Для корректной работы протокола HTTP/2 необходимо настроить поддержку HTTPS.

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

    Все действия по установке производятся на сервере через подключение по SSH.

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

    • Сервер с операционной системой Ubuntu 18.04/20.04.
    • Активный SSL-сертификат. В Рег.ру вы можете получить бесплатный SSL-сертификат для домена.
    • Зарегистрированный и привязанный к вашему серверу домен: Как привязать домен к Облачному серверу?

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

    Все действия по установке Nginx и настройке HTTP/2 рекомендуем выполнять не через пользователя root. Рекомендуем создать пользователя с sudo-правами. Так вы дополнительно обезопасите свой сервис и избежите случайных ошибок, которые могут сломать вашу операционную систему.

    Чтобы создать пользователя, введите команду:

    adduser userName

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

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

    Теперь установите права доступа, чтобы новый пользователь мог использовать команду sudo. Для этого выполните команду:

    usermod -aG sudo UserName

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

    Готово, новый пользователь создан. Завершите SSH-сеанс под root и подключитесь к серверу под новым пользователем.

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

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

    sudo apt update

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

    Репозиторий Ubuntu 18.04/20.04 предоставляет Nginx версии старше 1.9.5 с поддержкой HTTP/2, поэтому установка происходит одной командой и не требует добавления сторонних репозиториев.

    Установите Nginx командой:

    sudo apt-get install nginx

    Проверьте установку командой:

    sudo nginx -v

    Система покажет версию установленного Nginx.

    Для большинства проектов, помимо веб-сервера, необходимо дополнительно установить базы данных и PHP. Установить LEMP (Linux, Nginx, MySQL, PHP) вы можете по инструкции, пропустив «2 этап. Установка Nginx», так как это мы сделали ранее.

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

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

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

    • Сам сертификат, корневой и промежуточный сертификаты. Если SSL-сертификат был заказан в Рег.ру, после его активации эти данные отправляются на контактный e-mail, а также они дублируются в личном кабинете в карточке услуги.
    • Приватный ключ. Генерируется на этапе заказа сертификата. Рег.ру не хранит приватные ключи сертификатов. Мы рекомендуем сохранить ключ на локальном компьютере.

    Создайте директорию для хранения сертификатов в директории настроек веб-сервера командой:

    sudo mkdir /etc/nginx/ssl

    Создайте файл командой:

    sudo nano /etc/nginx/ssl/faq-reg.ru.crt

    Вместо faq-reg.ru укажите имя вашего домена, который привязан к серверу. Вставьте сам SSL-сертификат, промежуточный и корневой сертификаты в один файл. Обратите внимание: все сертификаты следуют друг за другом, без пустых строк. Сохраните и закройте файл:

    Создайте ещё один файл командой:

    sudo nano /etc/nginx/ssl/faq-reg.ru.key

    Не забудьте вместо faq-reg.ru указать имя вашего домена. Вставьте в файл приватный ключ SSL-сертификата, сохраните и закройте его:

    Откройте файл конфигурации веб-сервера командой:

    sudo nano /etc/nginx/sites-available/default

    После директив listen добавьте следующие строки:

    ssl_certificate /etc/nginx/ssl/faq-reg.ru.crt;
    ssl_certificate_key /etc/nginx/ssl/faq-reg.ru.key;

    Не забудьте изменить имя домена в названии файлов. Эти строки указывают путь к файлам сертификата. Сохраните изменения и закройте файл:

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

    В HTTP/2 есть чёрный список старых и небезопасных шифров, которые следует отключить. Наборы шифров – это криптографические алгоритмы, которые описывают методы шифрования передачи данных. Затем необходимо настроить новый набор шифров, который блокирует использование небезопасного шифрования MD5.

    Откройте конфигурационный файл Nginx командой:

    sudo nano /etc/nginx/nginx.conf

    Добавьте после ssl_prefer_server_ciphers on следующую строку:

    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

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

    sudo nginx -t

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

    Так как наш сервер будет работать только с протоколом HTTPS, необходимо настроить перенаправление запросов. В конце конфигурационного файла веб-сервера создайте новый блок server, который будет осуществлять редирект.

    Откройте конфигурационный файл веб-сервера командой:

    sudo nano /etc/nginx/sites-available/default

    Вы можете скопировать содержимое ниже и вставить в конфиг. Не забудьте изменить домен faq-reg.ru на ваш:

    server {
    listen         80;
    listen    [::]:80;
    server_name    faq-reg.ru;
    return         301 https://$server_name$request_uri;
    }

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

    sudo nginx -t

    6 этап. Включение HTTP/2 и настройка порта

    После установки Nginx веб-сервер по умолчанию будет настроен на работу по протоколу HTTP на 80 порту. Нужно изменить порт на 443 для использования HTTPS.

    Откройте конфигурационный файл веб-сервера командой:

    sudo nano /etc/nginx/sites-available/default

    В файле вы увидите блок server с примерным содержанием:

    server {
    
            listen 80 default_server;
            listen [::]:80 default_server;
            # SSL configuration
            # listen 443 ssl default_server;
            # listen [::]:443 ssl default_server;
            root /var/www/html;
            # Add index.php to the list if you are using PHP
            index index.html index.htm index.nginx-debian.html;
            server_name _;
            location / {
                    try_files $uri $uri/ =404;
            }
    
            #location ~ \.php$ {
            #       include snippets/fastcgi-php.conf;
            #       fastcgi_pass 127.0.0.1:9000;
            #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
            #}
    
            #location ~ /\.ht {
            #       deny all;
            #}
    }

    В этот файл внесите следующие изменения:

    • Закомментируйте следующее две строки, добавив перед ними знак #:
    #listen 80 default_server;
    #listen [::]:80 default_server;
    • Раскоментируйте следующее две строки, убрав перед ними знак #. Чтобы включить HTTP 2, в первой строке после «ssl» добавьте http2:
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl default_server;
    • Чуть ниже найдите директиву server_name. По умолчанию установлено значение _ (нижнее подчёркивание). Вместо него укажите имя вашего домена, который привязан к серверу. Например:
    server_name faq-reg.ru

    Сохраните и закройте файл. Результат:

    Проверьте синтаксис на ошибки:

    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 HTTP 2 завершена.

    7 этап. Перезагрузка Nginx

    Если при проверке конфигурационного файла не возникло ошибок, нужно перезапустить Nginx. Если убрать закомментированные строки из конфигурационного файла, должно получиться следующее:

    Выполните перезагрузку Nginx командой:

    sudo systemctl restart nginx

    Готово, установка Nginx и настройка HTTP/2 завершена.

    Помогла ли вам статья?

    Спасибо за оценку. Рады помочь 😊

     👍
    Специальные предложения
    • Бесплатный хостинг для сайта
    • Дешевый хостинг
    • Бесплатный VPS-сервер
    • Дешёвые VPS
    Рассылка Рег.ру

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

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

    Домены и сайты
    • Домены
    • Хостинг
    • Создание сайтов
    • SSL-сертификаты
    • VPS и VDS серверы
    • Whois
    • Магазин доменов
    Облако
    и IT-инфраструктура
    • Облачные серверы
    • Частное облако
    • Облачное хранилище
    • Kubernetes в облаке (K8S)
    • Облачные базы данных
    • Выделенные серверы
    Полезное
    • Стоимость услуг
    • Cпособы оплаты
    • База знаний
    • Документы
    • ЭДО
    • Партнерам
    • Сообщить о нарушении
    • РБК: новости России и мира сегодня
    • Новости компаний РФ
    • РБК Инвестиции: курсы валют
    Компания
    • О компании
    • Контакты
    • Офисы
    • Новости
    • Акции и скидки
    • Блог
    • Отзывы клиентов
    8 800 555-34-78 Бесплатный звонок по России
    +7 495 580-11-11 Телефон в Москве
    • vk
    • telegram
    • ok
    • moikrug
    • youtube
    • twitter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
    • © ООО «РЕГ.РУ»
    • Политика конфиденциальности
      Политика обработки персональных данных
      Правила применения рекомендательных технологий
      Правила пользования
      и другие правила и политики
    • Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера