我有CENTOS7服务器,有:
Server version: Apache/2.4.6 (CentOS)
.
如何在这些Apache上启用/添加HTTP / 2?
我正在尝试通过Nghttp从客户端发送http2请求,但由于不支持Http2的服务器,我在响应(recv RST_STREAM帧)中收到错误.
I saw that i have to enable module_http2 in the apache,but i didn’t
found hot can i do this.
提前致谢.
解决方法
仅在Apache 2.4.18中添加了HTTP / 2支持,这在标准的CentOS / Red Hat存储库中不可用.虽然作为mod_http2(并且仍处于编写时)正在积极开展工作,但您应该使用最新版本(编写本文时为2.4.33 – 尽管还有更多的mod_http2补丁).
此外,HTTP / 2需要OpenSSL 1.0.2或更高版本,这意味着您需要CentOS / RHEL 7.4或更高版本,除非您想要安装自己的OpenSSL版本以及您自己的Apache版本.请注意,如果您想要更进一步,请转到OpenSSL 1.1.0,需要Apache 2.4.26或更高版本.
因此,您需要从源代码下载并编译更高版本的Apache(可能还有OpenSSL),或者找到这些更高版本的另一个repo.这确实存在一些风险 – 主要是因为您丢失了repo版本提供的简单安全补丁. CentOS Apache 2.4.6实际上包含了更新版本的所有最新安全补丁(假设您经常运行“yum update”来更新它) – 但不是像HTTP / 2那样的功能更改(因此他们将版本号保留为2.4.6) .
如果您对从源代码安装感兴趣,那么我将在此处逐步介绍如何执行此操作:https://www.tunetheweb.com/performance/http2/