включить http2 с apache2 в Debian 8 - PullRequest
       101

включить http2 с apache2 в Debian 8

0 голосов
/ 19 октября 2018

вот что я включил 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 наtop

Но при использовании браузера или простого валидатора веб-сайта 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 ]

0 голосов
/ 19 октября 2018

Если вы используете mod_prefork, Apache выдаст ошибку в журналах при перезапуске.

Можете ли вы добавить следующее в ваш основной файл конфигурации apache:

<IfModule http2_module>
    #Enable HTTP/2 support
    Protocols h2 http/1.1
    LogLevel http2:info
</IfModule>

Затем перезапустите.Затем обеспечьте проверку начала журнала ошибок, чтобы узнать, говорит ли он что-либо.

Также стоит запустить httpd -V (или apachectl -V), чтобы увидеть, для чего настроена среда.

0 голосов
/ 21 октября 2018

Благодаря комментарию Барри Полларда - на работающем MPM я понял, что на моем сервере запущен MPM_prefork, последнее приближение, я понял, что моя установка не завершена ... поэтому я установил и настроил php7.2-fpm, отключил modphp, отключил mpm_prefork, затем включил mpm_worker, и он сразу заработал + каким-то образом предоставил поддержку для получения правильных заголовков в режиме https, чтобы вызвать 304 ответа

0 голосов
/ 19 октября 2018

Взято из 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.

...