Включить http2 с apache2 в Debian 8
Вот что я включил mod_http2 ( apachectl -M показывает: http2_module) и установил это в этом vhost
<VirtualHost *:443>
ServerName s74.fr
Protocols h2 h2c http/1.1
H2Direct on
H2EarlyHints on
Дело в том, когда я запускаю эту команду curl: я вижу, что ALPN предлагает h2 наверху
Но при использовании браузера или простого валидатора веб-сайта HTTP2 вообще никогда не используется..
Ребята, у вас есть какие-либо подсказки по этой теме?
Любые замечания, заметки, подсказки, просвещение будет принята с благодарностью;)
curl -v --http2 https://s74.fr
* Connected to s74.fr (91.121.146.195) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: C:\prog\ca-bundle.crt
CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
} [5 bytes data] ...
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ***ALPN, server accepted to use http/1.1***
* Server certificate:
* subject: CN=s74.fr
* start date: Oct 10 08:02:34 2018 GMT
* expire date: Jan 8 08:02:34 2019 GMT
* subjectAltName: host "s74.fr" matched cert's "s74.fr"
* issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
* SSL certificate verify ok.
} [5 bytes data]
> GET / HTTP/1.1
> Host: s74.fr
> User-Agent: curl/7.53.1
> Accept: */*
>
{ [5 bytes data]
< HTTP/1.1 200 OK
< Date: Fri, 19 Oct 2018 06:32:01 GMT
< Server: Apache/2.4.34 (Debian)
< Upgrade: h2,h2c
< Connection: Upgrade
< Etag: 1539924168
< Last-Modified: Fri, 19 Oct 2018 04:42:48 GMT
< Cache-Control: private
< Vary: Accept-Encoding
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=utf-8
3 ответа
Если вы используете mod_prefork, Apache покажет ошибку в журналах при перезапуске.
Можете ли вы добавить следующее в ваш основной конфигурационный файл apache:
<IfModule http2_module>
#Enable HTTP/2 support
Protocols h2 http/1.1
LogLevel http2:info
</IfModule>
Затем перезагрузите. Затем обеспечьте проверку начала журнала ошибок, чтобы увидеть, говорит ли он что-нибудь.
Также стоит побежать httpd -V
(или же apachectl -V
) чтобы увидеть, для чего настроена среда.
Благодаря комментарию Барри Полларда - на рабочем MPM я понял, что на моем сервере запущен MPM_prefork, последнее приближение, я понял, что моя установка не была завершена.. поэтому я установил и настроил php7.2-fpm, отключил modphp, отключил mpm_prefork, затем включил mpm_worker и он сразу заработал + каким-то образом предоставил поддержку для получения правильных заголовков в режиме https для запуска 304 ответов
Взято из https://http2.pro/doc/Apache
Веб-сервер Ubuntu / Debain Apache, распространяемый в стандартных программных репозиториях Ubuntu и Debian, не содержит mod_http2, необходимый для включения функциональности HTTP/2. Вам нужно будет добавить сторонний исходный код пакета с последней версией Apache, которая также включает mod_http2.
apt-get install software-properties-common python-software-properties
add-apt-repository ppa:ondrej/apache2
apt-get update
Это установит некоторые утилиты (если они еще не установлены), которые помогут нам добавить внешние PPA. Во-вторых, мы добавляем PPA-компонент ondrej / apache2, который содержит последние сборки Apache2. В-третьих, мы обновляем информацию о вашей системе.
apt-get install apache2
apachectl -v
Это обновление существующей версии Apache2 до последней версии. После обновления команда apachectl -v покажет вашу обновленную версию Apache. Это будет 2.4.29 или позже.
Добавить поддержку HTTP/2
Мы настоятельно рекомендуем сначала включить поддержку HTTPS для вашего веб-сайта. Большинство веб-браузеров просто не поддерживают HTTP/2 поверх простого текста. Кроме того, нет никаких оправданий, чтобы больше не использовать HTTPS. HTTP/2 может быть включен по сайтам. Найдите файл конфигурации виртуального хоста Apache и сразу после открывающего тега добавьте следующее: Протоколы h2 http/1.1
В целом, ваш файл конфигурации должен выглядеть примерно так:
<VirtualHost *:443>
Protocols h2 http/1.1
ServerAdmin you@your-awesome-site.com
ServerName your-awesome-site.com
...
</VirtualHost>
После внесения изменений не забудьте перезагрузить / перезапустить Apache.
apachectl restart
Кроме того, при следующей возможности я бы порекомендовал обновиться до Debian 9.