Nginx — это веб-сервер с открытым исходным кодом, который завоевал сердца многих администраторов и разработчиков благодаря своей эффективной работе, низкому потреблению памяти и мощной поддержке различных протоколов. Сегодня мы поговорим о настройке поддержки HTTP/2 в Nginx.

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

Почему переход на HTTP/2 важен?

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

Процесс перехода на HTTP/2

Перед началом настройки HTTP/2 у вас должен быть сервер с Ubuntu 18.04 и установленным Nginx. Также ваше доменное имя должно быть направлено на сервер, и для этого домена должен быть установлен SSL-сертификат (например, Let’s Encrypt).

1. Настройка сервера

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

vim /etc/nginx/sites-available/ваш_домен

Добавьте поддержку HTTP/2 для IPv6 и IPv4 соединений:

listen [::]:443 ssl http2 ipv6only=on;
listen 443 ssl http2;

Сохраните изменения и проверьте синтаксис:

nginx -t

2. Улучшение безопасности

Для улучшения безопасности исключите небезопасные шифры. В конфигурационном файле вашего домена измените опцию ssl_ciphers:

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

Проверьте синтаксис и перезагрузите сервер:

nginx -t
systemctl restart nginx.service

3. Добавление HTTP Strict Transport Security (HSTS)

Для обеспечения еще большей безопасности добавьте заголовок HTTP Strict Transport Security в ваш конфигурационный файл Nginx. Этот заголовок гарантирует, что браузеры будут использовать только HTTPS-соединения.

В конфигурационном файле Nginx:

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains" always;

Проверьте синтаксис и перезагрузите сервер.

4. Проверка корректной работы HTTP/2

Вы можете проверить работу HTTP/2 с помощью команды curl:

curl -I -L https://ваш_домен

В ответе сервера должно быть упоминание HTTP/2.

Вы также можете использовать Google Chrome и инструменты разработчика для проверки поддержки HTTP/2.

Теперь ваш сайт готов к работе с HTTP/2 — более быстрой и безопасной версией протокола HTTP!

Не забывайте всегда следить за обновлениями и безопасностью вашего сервера. Удачи! 🌐

Читайте также:

Вопросы и ответы

Каковы преимущества использования HTTP/2 по сравнению с HTTP/1.1?

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

Необходимо ли включать SSL/TLS при настройке поддержки HTTP/2?

Да, включение SSL/TLS крайне важно при настройке поддержки HTTP/2 для обеспечения безопасной связи между клиентами и сервером. Шифрование SSL/TLS защищает конфиденциальные данные от перехвата и несанкционированного доступа.

Можно ли настроить поддержку HTTP/2 на старых версиях Ubuntu?

Хотя технически возможно настроить поддержку HTTP/2 на старых версиях Ubuntu, таких как 16.04, для оптимальной совместимости и поддержки рекомендуется использовать Ubuntu 18.04 или новее.

Как проверить, включен ли HTTP/2 на моем сервере Nginx?

Вы можете проверить, включен ли HTTP/2 на вашем сервере Nginx, используя такие инструменты, как curl или онлайн-сервисы тестирования HTTP/2. Кроме того, изучение журналов сервера Nginx может дать представление о версии протокола, используемого клиентскими соединениями.

Требует ли включение поддержки HTTP/2 дополнительных ресурсов сервера?

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

Могу ли я вернуться к HTTP/1.1 при необходимости после настройки поддержки HTTP/2?

Да, при необходимости вы можете вернуться к HTTP/1.1, изменив параметры конфигурации Nginx. Однако перед внесением любых изменений рекомендуется тщательно протестировать совместимость и производительность вашего сайта.

Об авторе

Andrii Kostashchuk

Андрей имеет опыт программирования на разных языках под разные платформы и системы. Более 8 лет посвятил сфере веб, работая с разными CMS, такими как: Opencart, Drupal, Joomla, и конечно же наиболее популярной в наши дни системой управления контентом WordPress.

Просмотреть все статьи