关于Apache配置HTTP2

折腾了一天,也没有真正弄清楚这个东西怎么配置,先把自己查到的信息理一下,以备之后弄的时候搞清楚

背景

  • 因为使用的Oneinstack,Apache的路径等有所不同,所有就像看看官方给出的答案
  • 然后发现。。。。。。。。目前一键包是不支持的

1.jpg

2.jpg

  • 而Apache在2.4.17之后就支持了HTTP2,oneinstack可以安装2.4.23

思路

  • 后续再v2ex上有看到编译安装的时候需要先安装依赖库yum install libnghttp2-devel, 加上参数 --enable-http2 。安装完毕后在对应的 vhost.conf 中的 80 中增加 Protocols h2c http/1.1 ,443 中增加Protocols h2 http/1.1

  • 于是检查了 oneinstack 的一键包,在oneinstack/include/apache-2.4.sh中,我修改了其中的编译参数,增加了 --enable-http2, 并在安装完毕后,在 httpd.conf 中,去掉 http2 module 前面的#号。但截至目前无卵用。

目前认为可能的原因

  • openssl版本低于1.02
  • 参考此文,编译参数再增加这两个:
--with-nghttp2=<dir>
指定 http2 模块需要的 libnghttp2 模块的非默认位置。如果 nghttp2 是在默认的位置,配置过程会自动采用。
--enable-nghttp2-staticlib-deps
很少用到的选项,你可能想将 nghttp2 库静态链接到服务器里。在大部分平台上,只有在找不到共享 nghttp2 库时才有用。