在似乎正确安装之后,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 卷曲了,我仍然得到 HTTP/1.1。
卷曲命令:curl -vsko /dev/null --http2 https://www.thehomepainter.com
CURL 的简短回应:
GET / HTTP/1.1 主机:www.thehomepainter.com 用户代理:curl/7.64.0 接受:/
< 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 support@thedesignguis.com
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 可以工作。然而,事实并非如此,我也不知道为什么。