我使用虚拟服务器,运行 Debian Jessie (8) 和 Apache2 2.4.10 版本。不幸的是,这个版本的 Apache2 似乎是官方存储库提供的最新版本。我的问题是:有没有一种方便的方法可以在不升级到 Debian 9 的情况下获得 Apache2 2.4.17 或更高版本?我需要它来获得 HTTP2 支持。
答案1
由于没有Debian 反向移植Debian 8 (Jessie) 的存储库,你无法获得阿帕奇2基于较新的上游版本的软件包。
因为你不想升级到至少Debian 9 (Stretch),当前版本为 2.4.25-3+deb9u8,简单的选项被排除。
我认为留在 Debian 生态系统中剩下的一个选择是自行移植较新版本的 Apache 2并手动安装。但是,有一个重要的警告你会错过 Debian 的安全更新,在像 Apache 这样复杂的软件中,在典型的配置中,它直接暴露在不可信的网络流量中,是一个重大风险。你必须手动密切监控并及时安装来自上游的任何新版本。(如果这些新版本带有您不想要的功能或其他更改,那么,您就太倒霉了。无论如何,您都需要安装它们以确保系统安全。)
当然,您也可以直接构建并安装源代码,但这样您就失去了 Debian 中的所有包管理功能。这也要求您密切关注上游,并在任何更新可用时及时安装,与上述情况相同。
尽管如此,Jessie LTS 将于 2020 年 6 月 30 日停止服务,距离 Stretch 首次发布已经过去了三年。虽然目前 LTS 团队确实对一些重要修复进行了反向移植,但基础系统仍是 2015 年 4 月的;到现在为止已经有四年半了。你确实应该制定升级计划至少升级到 Stretch,理想情况下在不久的将来会升级到较新的版本(Debian 10 (Buster) 是最新版本)。Debian wiki LTS 页面上的表格列出了延长 LTS 服务至 2022 年 6 月,这与 Buster 停止获得常规(非 LTS)支持并过渡到 LTS 的时间大致相同。
当然,另一种方法是安装一些支持 HTTP/2 并通过它代理流量的其他 Web 服务器软件。我并不是说这是个好方法……(如果你按照 fuero 的建议设置了一个新盒子来执行此操作,你最好还是升级到较新的 Debian 版本。)
我还强烈建议您制定计划以简化未来的重大升级。这可能在短期内会造成一些麻烦,但从长远来看会为您节省大量时间。例如,如果您正在运行容器虚拟机,请考虑切换到完全虚拟化,或设置自动部署,以便重大升级只需重新部署到较新的发行版即可。
答案2
嗯,舒适度因人而异。您的(可管理/面向未来的)选项包括:
- 下载 apache 的源包,增加版本号,在额外的盒子上进行编译,设置您自己的存储库。
- 下载较新版本的源包,在额外的盒子上对旧版本进行编译,设置您自己的存储库。
- 使用提供 HTTP/2 的替代软件。
- 使用较新的盒子将 HTTP/2 代理到 HTTP/1.1。对该盒子使用较新的 Debian 版本。
- 升级。呃