Apache Web服务器配置http2各种失败

我在 Debian Stretch 最新稳定版 9.6 的系统下通过 Apt 源安装了 Apache 2.4.25 ,想配置 http2 协议支持,首先 a2enmod 了 http2 模块,确保已开启。然后 sites 文件里写了 Protocols h2 http/1.1 ,接着检查了 openssl 版本为 1.1.0,然后查阅了 Apache Httpd 的文档和 Linux.cn 和 CSDN 。可是在 myssl.com 的检查中仍然提示只支持http1.1,并显示 ALPN 只有 http1.1 ,我的地址是 something.123.abc,在同一台设备上用 curl 测了一下,先是

  • Rebuilt URL to: https://some.domain.here/
  • Trying 1.2.3.4...
  • TCP_NODELAY set
  • Connected to abc.efg.hji (12.34.56.78) 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: /etc/ssl/certs/ca-certificates.crt
    CApath: /etc/ssl/certs

看到 ALPN 同时提供 http2 和 http1.1 ,握手之后

  • SSL connection using TLSv1.2 / ECDHE-ECDSA-AES128-GCM-SHA256
  • ALPN, server accepted to use http/1.1
  • Server certificate:
  • <此处是证书信息>
  • SSL certificate verify ok.

又看到
ALPN, server accepted to use http/1.1
再次求助谷歌无果,遂尝试把这个配置在 http 不带 s 的哪里复制粘贴,然后把 h2 改成 h2c 的情况下用 curl 再测,仍旧不能使用。具体信息为

  • Rebuilt URL to: http://*/
  • Trying 123.000.456.789...
  • TCP_NODELAY set
  • Connected to .. (1.23.456.78) port 80 (#0)
GET / HTTP/1.1
Host: **sssss
User-Agent: curl/7.52.1
Accept: /
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
HTTP2-Settings: AAMAAABkAARAAAAA
虽然带有这个头,但是内容是直接返回 HTTP1.1 的东西,所以检查了各种配置,无法解决这个问题了,请各位大佬帮帮忙
阅读 745
评论
    1 个回答

    自己解决了。后调log时发现php7.3走Apache2handle时调用到了mpm,而这玩意不支持http2,真nb。现在切换到了Debian buster,问题还是一样,经检验用Apache2走php7.3-fpm可以解决问题,但是只要走Apache2的module就没辙

      撰写回答

      登录后参与交流、获取后续更新提醒

      相似问题
      推荐文章