gpt4 book ai didi

apache - 是什么可以阻止我用apache激活http2?

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:25 25 4
gpt4 key购买 nike

我已经阅读了很多有关http2的文档,并且启用它似乎很安全。但是我需要100%确保我不会进行任何回归,或者至少要知道会发生什么回归。

是什么导致我无法在生产apache服务器上启用http2?
我必须仔细检查哪些配置?
什么新行为可能会给我带来麻烦?

最佳答案

这是一个非常基于意见的问题,而不是Stack Overflow的一种很好的格式,旨在提供基于事实的答案。这也完全取决于您所提供的细节很少的环境。

但是,我对此感兴趣,并且不介意花一点时间尽可能地回答。

这些是您应该考虑的事情:


首先,您需要将Apache升级到支持HTTP / 2的版本。理想情况下,您应该升级到最新版本(在撰写本文时为2.4.29),因为自从它在2.4.17中首次启动以来,HTTP / 2代码已经进行了许多更改,并且在该版本中不再标记为“实验性”。 2.4.26。它的难易程度取决于您的环境,但是打包的版本(例如,通过RHEL和Centos上的yum)通常不是最新版本,并且超出打包环境的安全性,从源代码构建或第三方存储库不是轻而易举的一步。另请参阅this question,以获取有关是否应使用mod_http2的更多信息(我认为是)。
您需要考虑您来自哪个版本的Apache,以及升级时需要进行哪些更改(如果有)。许多人仍在使用2.2和upgrade to 2.4 requires some changes。如果已经在2.4的较早版本上,那么这应该不是问题,但仍有一些更改可能会影响您。虽然2.2是生命的尽头,所以这是您迟早需要做的事情。
HTTP / 2要求HTTPS可以在所有浏览器上运行,因此,如果您的站点尚未安装在HTTPS上,则可能会有点升级。但是,Web再次迁移到HTTPS,因此,如果还没有这样做,那么您迟早会需要执行此操作。
HTTP / 2要求OpenSSL 1.0.2或更高版本具有ALPN支持才能协商HTTP / 2。同样,许多Linux发行版都不包含此版本,即使那些具有此发行版的版本(例如RHEL / Centos 7.4)也不会针对此版本构建Apache。所以再次,您可能需要查看从源代码构建或其他回购(请参见上面的要点)。
HTTP / 2需要良好的HTTPS配置(例如GCM密码),这要归功于OpenSSL 1.0.2,但可能需要查看您的SSL / TLS配置以进行配置。 SSLLabs Server Test Tool是查看此内容的最佳选择。
您是否使用websockets? They are currently not compatible with HTTP/2,因此如果使用它们,则需要保持HTTP / 1.1不变。当前有计划将WebSockets添加到HTTP / 2,但它们仍处于讨论阶段。
您应该知道,HTTP / 2强制使用小写的HTTP标头名称。传统上,HTTP标头名称始终不区分大小写,但是并非每个实现都正确实现了该实现,并且某些依赖于区分大小写。
HTTP / 2响应仍然发送响应代码(200、404),但是省略状态文本(“确定”,“未找到”)。同样,这不会影响大多数正确编码的应用程序,但是如果您依赖此响应消息,则可能需要做一些工作来解决此问题。
HTTP / 2旨在用于单个连接。如果您当前分片不同域的资产,则它可能会尝试coalesce them back into one connection,这应该可以无缝运行,但是如果HTTP / 2在所有分片域上均不可用,则会导致一些问题。


最后3分来自出色的BBC write up of the issues they experienced when moving to HTTP/2

以上是有关如何升级以启用HTTP / 2的所有要点。坦率地说,在大多数标准Linux发行版上,这现在有点痛苦,但随着新版本的普及,希望它将变得更加容易。

但是,一旦安装到位并且可以升级到HTTP / 2,则需要确定是否要升级。

总体上,HTTP / 2被设计为向后兼容,因此应该进行无缝升​​级。可以使用HTTP / 2的客户端,不能使用HTTP / 2的客户端(可以在可预见的将来配置)。

但是,HTTP / 2在技术领域仍然相对较新,并且客户端或服务器端可能存在实现问题。说它已经使用两年了,我的经验是非常积极的,没有看到很多问题,但是与任何升级一样,您应该在升级之前进行测试,测试,测试,然后进行监控。我见过的大多数问题都是晦涩的问题,其中HTTP / 2并没有达到应有的性能,而没有显示出停止的问题,例如,大多数没有我兴趣的人都很难注意到它们。 20% of web traffic is using HTTP/2因此它是一种经过验证的技术,并且很大程度上基于SPDY,在过去的几年中,SPDY已被许多站点,服务器和客户端使用,而没有出现重大问题。

您还应该考虑HTTP / 2的好处。在我看来,大多数网站都应该看到良好的速度改进(可能达到20%),但这并不能保证,这将取决于单个站点以及访问者的连接和使用情况。某些带宽绑定的站点甚至可能会变慢。但是,您需要设定切合实际的期望,并了解性能瓶颈在哪里,然后这将有助于了解HTTP / 2是否(以及在多少程度上)会有所帮助。对于性能不佳的网站,这不是一个神奇的解决方案。

升级后要考虑的其他几点:


您是否针对HTTP / 2进行了优化(如果需要)?这会影响那些仍使用HTTP / 1.1的访问者吗?有关详细信息,请参见this answer
您是对任何后端服务器使用HTTP / 2还是在Web服务器上终止HTTP / 2(就像许多HTTPS一样),并对任何后端应用程序服务器使用HTTP / 1.1?这要求使用mod_proxy_http2,该标记仍被标记为实验性的,并且与mod_http2主模块相比,具有较少的用法和过多的位置。我现在不建议这样做,除非您有充分的理由使用它。如果不进行上述升级,许多后端应用程序服务器也将不支持HTTP / 2。
您是否使用HTTP / 2 push等新功能?这仍然是一项新兴技术和needs careful thought,最好在缓存摘要标准化之前保留。


归根结底,没有人,但是您可以“ 100%确保”您不会遇到任何问题,您需要进行测试以增强自信。显然,您对HTTP / 2的了解和了解越多,您就越会做好充分的准备来理解影响和任何问题。

关于apache - 是什么可以阻止我用apache激活http2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47154767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com