HTTP/2, кажется, не работает после правильной установки.
Я использую CentOS 7.
Я установил последнюю версию Apache, версию httpd-2.4.35-5.el7.x86_64, и пытался заставить работать HTTP/2.
Для этого я вижу, что нам нужно запустить http2_module. То есть активно и работает. Я полагаю, что подтвердил это, выполнив команду httpd -M
. http2_module (общий) указан под этими модулями.
Следующее, что я знаю, это добавить Protocols h2 h2c http/1.1
над тегом <VirtualHost ...>
. Я сделал это также.
Наконец, я изменил свой URL-адрес CURL, но все еще получаю HTTP/1.1.
Команда CURL: curl -vsko /dev/null --http2 https://www.thehomepainter.com
Краткий ответ от CURL:
GET / HTTP/1.1 Host: www.thehomepainter.com User-Agent: curl/7.64.0 Accept: /
‹ HTTP/1.1 200 ОК
Частично из httpd.conf
Protocols h2 h2c http/1.1
<VirtualHost *:443>
SSLEngine on
ServerAdmin ### omitted ###
ServerName thehomepainter.com
ServerAlias www.thehomepainter.com
DocumentRoot /var/www/html/
Options -Indexes
ProxyRequests off
ProxyPreserveHost On
AllowEncodedSlashes NoDecode
ProxyPass "/" "http://localhost:3000/"
ProxyPassReverse "/" "http://localhost:3000/"
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile ### omitted ###
SSLCertificateKeyFile ### omitted ###
SSLCertificateChainFile ### omitted ###
# i have tried this here as well
# Protocols h2 h2c http/1.1
</VirtualHost>
Protocols h2 h2c http/1.1
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName thehomepainter.com
ServerAlias www.thehomepainter.com
DocumentRoot /var/www/html
RewriteEngine on
RewriteCond %{SERVER_NAME} =thehomepainter.com [OR]
RewriteCond %{SERVER_NAME} =www.thehomepainter.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
# i have tried this here as well
# Protocols h2 h2c http/1.1
</VirtualHost>
Таким образом, ожидаемый результат заключается в том, что HTTP/2 будет работать. Однако это не так, и я понятия не имею, почему.