Мы покажем вам, как настроить Nginx с поддержкой HTTP/2 на Debian 9. HTTP/2 является основной версией протокола HTTP-сети и предлагает множество преимуществ. Включение HTTP/2 в Nginx, запущенном на сервере Debian 9, является довольно простой задачей, если вы внимательно следуете руководству ниже. Давайте начнем!
Что такое HTTP/2?
HTTP/2 является основной версией сетевого протокола HTTP. Он основан на экспериментальном протоколе SPDY, разработанном Google. Основная цель HTTP/2 – уменьшить задержку, свести к минимуму служебные данные протокола и добавить поддержку для приоритизации запроса. Это ускоряет загрузку веб-приложений.
Синтаксис высокого уровня, такой как коды состояния, методы, поля заголовков, URI и т. Д., Такие же, как и более ранняя версия HTTP, за исключением того, что существует разница в том, как данные создаются и транспортируются между клиентом и сервером.
Поддержка HTTP/2 была представлена в версии Nginx версии 1.9.5 и доступна во всех более новых версиях. Если вы используете Debian 9 в качестве операционной системы, вам не стоит беспокоиться, можете ли вы использовать HTTP/2 с Nginx или нет. Версия Nginx, включенная в репозиторий Debian 9 по умолчанию, выше 1.9.5, поэтому будет включена поддержка HTTP/2.
Чтобы проверить версию Nginx, установленную на вашем Debian VPS, подключитесь к своему серверу через SSH и выполните следующую команду:
nginx -v
Выход должен быть похож на приведенный ниже:
# nginx -v nginx version: nginx/1.10.3
Если вы получите что-то вроде следующего:
# nginx -v -bash: /usr/sbin/nginx: No such file or directory
Это означает, что Nginx не установлен на вашем Linux VPS, и вам нужно сначала установить его. Для установки Nginx выполните следующие команды:
apt-get update apt-get install nginx
По завершении установки запустите команду выше, чтобы убедиться, что Nginx установлен, и поддерживает HTTP/2.
Настройка Nginx с поддержкой HTTP/2 на Debian 9
HTTP/2 не требует шифрования. Однако в настоящее время ни один браузер не поддерживает HTTP/2 без шифрования, поэтому вам необходимо иметь действительный сертификат SSL, выданный для вашего домена, прежде чем приступать к другим шагам в этом руководстве.
Чтобы включить HTTP/2 в Nginx, откройте серверный блок Nginx по умолчанию, используя текстовый редактор по вашему выбору.
nano /etc/nginx/sites-available/default
Затем добавьте следующие строки:
server { listen 443 ssl http2 default_server; server_name domain.com www.domain.com; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } ssl_certificate /etc/nginx/ssl/domain.com.crt; ssl_certificate_key /etc/nginx/ssl/domain.com.key; } server { listen 80; server_name domain.com www.domain.com; return 301 https://$server_name$request_uri; }
Используйте свое доменное имя server_name
, местоположение ваших данных веб-сайта root
и путь к вашему SSL-сертификату и к закрытому ключу для ssl_certificate
и ssl_certificate_key
.
После того, как вы закончите, сохраните файл и закройте его. Проверьте, есть ли синтаксические ошибки в конфигурации Nginx, используя следующую команду:
nginx -t
Если все в порядке с конфигурацией, вывод должен быть похож на следующий:
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
В противном случае ошибки будут указаны на выходе, чтобы вы могли легко выяснить, в чем проблема.
После того, как вы уверены, что нет никаких проблем с конфигурацией в Nginx, вы можете перезапустить службу, используя следующую команду:
systemctl restart nginx.service
Одна вещь, которую мы можем улучшить здесь, – это ключевая безопасность обмена. По умолчанию Nginx использует ключ с 1028 бит Diffie-Hellman, и мы можем создать новый, более безопасный. Чтобы создать новый ключ Diffie-Hellman, выполните следующую команду:
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
Процесс займет пару минут. После создания ключа откройте серверный блок Nginx по умолчанию и добавьте следующую строку ssl_certificate_key
:
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
Затем перезапустите Nginx, чтобы изменения вступили в силу.
Если у вас перестал работать сервер в Иркутске, выбирай сервисный центр ISIB, там вам проведут бесплатную диагностику и техническую консультацию, заменят на качественные оригинальные комплектующие, дадут гарантию до 2 лет на выполненные работы и замененные детали.
Если вы хотите настроить Nginx с поддержкой HTTP/2 для другого имени домена, вы можете ознакомиться с нашим руководством по настройке серверных блоков в Nginx.