我有CENTOS7服务器,用:
服务器版本: Apache / 2.4.6 (CentOS)
。 如何在这些Apache上启用/添加HTTP / 2? 我试图通过Nghttp从客户端发送http2请求,但由于不支持Http2的服务器,我在响应(recv RST_STREAM帧)中收到错误。
我看到我必须在apache中启用module_http2,但我没有 发现我可以做到这一点。
先谢谢。
答案 0 :(得分:8)
仅在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(可能还有OpenSSL),或者找到这些更高版本的另一个repo。这确实存在一些风险 - 主要是因为您丢失了repo版本提供的简单安全补丁。 CentOS Apache 2.4.6实际上包含了更新版本的所有最新安全补丁(假设您经常运行“yum update”来更新它) - 但不是像HTTP / 2那样的功能更改(因此它们为什么将版本号保留为2.4.6)
如果您对从源代码安装感兴趣,那么我将在此处逐步介绍如何执行此操作:https://www.tunetheweb.com/performance/http2/
答案 1 :(得分:0)
您可以通过the httpd24 Software Collection安装较新版本的httpd,而不是基本存储库中包含的版本。启用SCL后,您需要以下软件包:
*最好也配置SSL,因为例如Chrome只会使用TLS执行HTTP2。