Поддержка HTTP/2 в Plesk

Обзор

HTTP/2 - это вторая основная версия сетевого протокола HTTP, используемого в интернет-пространстве. Принятый в мае 2015 г., HTTP/2 был создан в ответ на значительные проблемы производительности HTTP 1.1. О преимуществах этого протокола можно прочитать здесь. В настоящее время HTTP/2 поддерживается большинством основных веб-браузеров.

Поддержка HTTP/2 доступна клиентам Plesk начиная с версии 12.5.30 обновления #28, и для нее требуется последняя версия nginx.

Примечание. Поддержка HTTP/2 предоставляется только для SSL-сайтов, не-SSL-сайты продолжат работать по протоколу HTTP/1.x.

Как включить поддержку HTTP/2 на своем сайте

Удостоверьтесь в том, что веб-сервер nginx обновлен до последней версии и работает. Это можно сделать на страницах Инструменты и настройки > Компоненты сервера и Инструменты и настройки > Управление службами.

components

services

Войдите на сервер по SSH как пользователь root и включите поддержку HTTP/2 в Plesk с помощью следующей утилиты командной строки:

# plesk bin http2_pref enable

При выполнении последнего шага ваш веб-сервер nginx будет настроен для использования протокола TLS с новыми и надежными шифрами, вся конфигурация веб-сервера будет пересобрана, а все ваши сайты и сайты ваших клиентов с поддержкой SSL будут перенесены на протокол HTTP/2.

Пожалуйста, при переключении на HTTP/2 проверьте вывод команды на наличие ошибок и предупреждений. При возникновении проблем обратитесь к разделу Устранение неисправностей ниже.

Примечание. Можно просто воспользоваться такой онлайн-службой, как https://tools.keycdn.com/http2-test, чтобы проверить, что HTTP/2 включен на домене.

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

# plesk bin http2_pref disable
Поддержка ALPN

Чтобы протокол HTTP/2 правильно работал в Google Chrome, веб-сервер nginx должен поддерживать ALPN (Application-Layer Protocol Negotiation - согласование протокола на уровне приложения). Подробную информацию смотрите в документации к ALPN.

Поддержка ALPN для веб-сервера nginx доступна в Plesk для следующих операционных систем: CentOS 7, RedHat Enterprise Linux 7, Ubuntu 14.04, Ubuntu 16.04 и Debian 8.

Это означает, что HTTP/2 на базе Plesk работает на упомянутых операционных системах во всех современных браузерах.

Устранение неисправностей

Если у вас возникли проблемы при включении поддержки HTTP/2 для сайта, или проверка сайта с помощью https://tools.keycdn.com/http2-test показывает, что включен только протокол HTTP 1.x, используйте следующие шаги, чтобы исправить это поведение.

  1. Удостоверьтесь в том, что поддержка SSL включена для сайта в разделе Настройки хостинга домена. Поддержка HTTP/2 предоставляется только для SSL-сайтов, не-SSL-сайты продолжат работать по протоколу HTTP/1.x. Это ограничение со стороны веб-сервера nginx и веб-браузеров.
  2. Проверьте, что nginx включен:

    # plesk sbin nginxmng –s

    Включите его при необходимости:

    # plesk sbin nginxmng -e

  3. Проверьте, что версия пакета OpenSSL - 1.0.1 или выше:

    # rpm -qa | grep openssl

    openssl-1.0.1e-42.el6_7.4.x86_64.

  4. Проверьте, что в /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php нет шаблона индивидуальной конфигурации. Удалите его, если найдете, и пересоздайте конфигурационные файлы:

    # plesk sbin httpdmng --reconfigure-all

    Или, если вы не хотите удалять свои индивидуальные настройки, можно изменить файл /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php следующим образом.

    Найдите строку, похожую на:

    ($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') ?>;

    И замените ее двумя следующими строками:

    ($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') .

    ($OPT['ssl'] && $VAR->domain->physicalHosting->proxySettings['nginxHttp2'] ? ' http2' : '') ?>;

    Затем выполните команду:

    # plesk bin http2_pref enable

  5. Проверьте, что в файле /usr/local/psa/admin/conf/panel.ini есть следующая секция:

    [webserver]

    nginxHttp2 = true

  6. Удостоверьтесь в том, что в файле /usr/local/psa/admin/conf/panel.ini нет неправильных элементов. Исправьте их при обнаружении. Если вы не уверены насчет этих элементов, сохраните резервную копию файла /usr/local/psa/admin/conf/panel.ini и восстановите оригинальный файл из /usr/local/psa/admin/conf/panel.ini.sample.

    Пересоздайте конфигурационные файлы:

    # plesk sbin httpdmng --reconfigure-all

  7. В случае возникновения проблем с SSL-подключением при включенном HTTP/2, удостоверьтесь в том, чтобы значение директивы ssl_ciphers в файле /etc/nginx/conf.d/ssl.conf или в измененном файле nginxDomainVirtualHost.php было следующим:

    ssl_ciphers EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:CHACHA20:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES;

  8. Если ваш сайт не работает в некоторых браузерах после включения HTTP/2, это может означать, что у вас нет необходимых шифров и протоколов для поддержки HTTP/2. Воспользуйтесь утилитой sslmng из Plesk для установки имеющихся протоколов и списка шифров TLS после включения HTTP/2. Например, если вы хотите использовать точно такой же список шифров, какой использует Plesk, команда будет следующей:

    #plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"

    Конфигурация будет сохранена в файле /etc/nginx/conf.d/ssl.conf. Мы не рекомендуем редактировать этот файл вручную.

  9. Если описанные выше шаги не помогли, обратитесь в службу технической поддержки Plesk.
 

Leave your feedback on this topic here

If you have questions or need support, please visit the Plesk forum or contact your hosting provider.
The comments below are for feedback on the documentation only. No timely answers or help will be provided.