Здравствуйте. Есть ресурс на vps:
- Drupal 7.61
- debian 8
- https (let's encrypt) сертификат A
- apache 2.4.37
Решил перейти на http/2:
Сервер Апач. Обновил до 2.4.37.
включил модуль http2
Перезагрузил
Добавил конфиг
Protocols h2 h2c http/1.1
H2Push on
H2PushPriority * after
H2PushPriority text/css before
H2PushPriority image/jpeg after 32
H2PushPriority image/png after 32
H2PushPriority application/javascript interleaved
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite 'EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS'
EOF
Перезагрузил апач. Но протокол по прежнему http/1.1
Кэш чистил
Так же пробовал добавлять в virtualhost
Мод включен (apache2ctl -M показывает http2.load)
Вопрос: что я забыл? Почему не работает?
Спасибо.
Комментарии
Друзья, моя самооценка немного растет. Я сам решил проблему. Если кто будет искать:
«стандартный» модуль Апач "prefork" не очень совместим с HTTP/2, поэтому Вам нужно использовать более подходящий. Выключаем один, включаем другой, перезагружаем Apache.
sudo a2enmod mpm_event
service apache2 restart
Это помогло мне, наконец, запустить h2 протокол с использованием letsencrypt
Если вы используете php в режиме fastcgi, то зачем вам вообще apache? С mpm_event, он в принципе не так уж плох, но всё-же и так он тяжелее того же nginx, который прилично работает и с http2.
Ну и в целом, не всё так просто как описано выше, т.к. у большинства с apache mpm_prefork, будет в комплекте mod_php, и он не будет нормально работать с mpm_event.