Поиск по сайту:
Там, где одни видели абстракцию, другие видели истину (А.Камю).

Как настроить в Apache поддержку HTTP/2 на Ubuntu 16.04

06.12.2016
Как настроить в Apache поддержку HTTP/2 на Ubuntu 16.04

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

Поддержка HTTP/2 не включена в Ubuntu 16.04, ни с Nginx, ни с Apache, так как эта функция считается экспериментальным путем Apache HTTPD, так что это представляется возможным включить его на Ubuntu 14.04, используя команду a2enmod:

a2enmod http2
ERROR: Module http2 does not exist!

 

Поддержка HTTP/2 ,eltn включена в Ubuntu 16.04 после того, как Apache HTTPD в последующем рассмотрит неэкспериментальную поддержку.
К счастью, модуль http2 включен в источнике, поэтому следующие шаги, помогут включить поддержку HTTP/2 на веб — сервере Apache:

Добавить исходные идентификаторы URI в файл sources.list, если это не было сделано ранее:

vi /etc/apt/sources.list

 

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

deb-src http://archive.ubuntu.com/ubuntu/ xenial main universe restricted multiverse
deb-src http://security.ubuntu.com/ubuntu xenial-security main universe restricted multiverse
deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main universe restricted multiverse

 

Запустите команду ‘apt-get update’ для загрузки списков пакетов из хранилищ и обновления их, чтобы получить информацию о новейших версиях пакетов, а затем обновите Ubuntu 16.04 с помощью команды ‘apt-get update’:

apt-get update
apt-get upgrade

 

Установите необходимые зависимости:

apt-get install curl devscripts build-essential fakeroot

 

Создайте нового пользователя для вашего сервера, или переключитесь на существующую учетную запись пользователя:

sudo adduser <имя пользователя> sudo
su <имя пользователя>

 

Замените <имя пользователя> на ваше действительное имя пользователя.
Установите пакет libnghttp2-dev:

[user]$ cd ~
[user]$ sudo apt-get install libnghttp2-dev
[user]$ mkdir apache2
[user]$ cd apache2

 

Загрузите исходный код apache2 на сервер и настройте его:

[user]$ apt-get source apache2
[user]$ sudo apt-get build-dep apache2
[user]$ cd apache-2.4.18
[user]$ sudo apt-get install curl devscripts build-essential fakeroot
[user]$ fakeroot debian/rules binary
[user]$ sudo cp debian/apache2-bin/usr/lib/apache2/modules/mod_http2.so /usr/lib/apache2/modules/
[user]$ exit

 

Загрузите модуль HTTP/2. Создайте файл /etc/apache2/mods-available/http2.load и добавьте следующие строки:

LoadModule http2_module /usr/lib/apache2/modules/mod_http2.so

<IfModule http2_module>
LogLevel http2:info
</IfModule>

 

Включите модуль http2:

a2enmod http2

 

Добавьте протокол h2 для каждого SSL на основе виртуальных хостов. Например, отредактируйте конфигурационный файл default-ssl:

vi /etc/apache2/sites-enabled/default-ssl.conf
<IfModule mod_ssl.c>
 <VirtualHost _default_:443>
 ServerAdmin webmaster@localhost
 ServerName your-domain.ru
 Protocols h2 http/1.1
 DocumentRoot /var/www/html
 
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
 
 SSLEngine on

 SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
 SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

 <FilesMatch "\.(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory /usr/lib/cgi-bin>
 SSLOptions +StdEnvVars
 </Directory>

 </VirtualHost>
</IfModule>

 

Или, добавьте протокол h2 к http/1.1 к основной конфигурации Apache, чтобы позволить http2 на всех веб-сайтах:

vi /etc/apache2/apache2.conf

 

Добавьте эту строку в конце:

Protocols h2 http/1.1

 

Перезапустите Apache для того, чтобы изменения вступили в силу:

service apache2 restart

 

Все. Поддержка HTTP/2 включена на вашем веб-сервере Apache.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

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

Спасибо!

Теперь редакторы в курсе.