如何在 Ubuntu 上的 Apache 中启用 HTTP/2如何在 Ubuntu 上的 Apache 中启用 HTTP/2如何在 Ubuntu 上的 Apache 中启用 HTTP/2如何在 Ubuntu 上的 Apache 中启用 HTTP/2
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 上的 Apache 中启用 HTTP/2

自万维网 (www) 诞生以来,HTTP 协议经过多年发展,能够通过互联网提供安全、快速的数字内容。互联网。

使用最广泛的版本是HTTP 1.1,虽然它包含了功能增强和性能优化,以解决早期版本的缺点,但它还缺少 HTTP 1.1 已解决的其他一些显着功能。 >HTTP/2。

HTTP/1.1 有哪些限制?

HTTP/1.1 协议存在以下缺点,使其不太理想,尤其是在运行高流量 Web 服务器时:

  1. 由于 HTTP 标头过长,导致网页加载延迟。
  2. HTTP/1.1 只能为每个 TCP 连接的每个文件发送一个请求。
  3. 鉴于 HTTP/1.1 为每个 TCP 连接处理一个请求,浏览器被迫发送大量并行 TCP 连接来同时处理请求。这会导致 TCP 拥塞,最终导致带宽浪费和网络性能下降。

上述问题常常导致性能下降和带宽使用的高开销成本。 HTTP/2 的出现就是为了解决这些问题,它现在是 HTTP 协议的未来。

使用 HTTP/2 的优点

它具有以下优点:

  1. 标头压缩可最大限度地减少客户端请求,从而降低带宽消耗。由此产生的效果是页面加载速度很快。
  2. 通过一个 TCP 连接复用多个请求。服务器和客户端都可以将 HTTP 请求分解为多个帧,并在另一端将它们重新组合。
  3. 更快的网络性能,从而带来更好的 SEO 排名。
  4. 由于大多数主流浏览器通过 HTTPS 加载 HTTP/2,因此提高了安全性。
  5. 由于标头压缩功能,HTTP/2 被认为对移动设备更加友好。

也就是说,我们将在 Ubuntu 20.04 LTS 和 Ubuntu 18.04 LTS 上的 Apache 上启用 HTTP/2。

先决条件:

开始之前,请确保在启用 HTTP/2 之前在 Apache Web 服务器上启用 HTTPS。这是因为所有主流网络浏览器都通过 HTTPS 支持 HTTP/2。我有一个域名指向 Ubuntu 20.04 上的一个实例,该实例正在运行使用 Let’s Encrypt 证书保护的 Apache 服务器。

此外,建议您为打算转向 HTTP/2 的生产服务器使用 Apache 2.4.26 及更高版本。

要检查您正在运行的 Apache 版本,请执行以下命令:

apache2 -v

从输出中,您可以看到我们使用的是最新版本,即撰写本文时的 Apache 2.4.41。

在 Apache 虚拟主机上启用 HTTP/2

首先,请确认网络服务器正在运行 HTTP/1.1。您可以在浏览器上执行此操作,方法是使用 Ctrl +SHIFT + I 组合打开 Google chrome 上的开发人员工具部分。单击“网络”选项卡并找到“协议”列。

接下来,通过运行以下命令在 Ubuntu 上启用 HTTP/2 模块。

sudo a2enmod http2

接下来,找到并编辑您的 SSL 虚拟主机文件,如果您已使用 Let's Encrypt 启用 HTTPS,则会使用 le-ssl.conf 创建一个新文件 后缀。

sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf

在 标记后插入以下指令。

Protocols h2 http/1.1

要保存更改,请重新启动 Apache Web 服务器。

sudo systemctl restart apache2

要检查是否启用了 HTTP/2,请使用以下curl 命令获取 HTTP 标头,如下所示。

curl -I --http2 -s https://domain.com/ | grep HTTP

您应该得到显示的输出。

HTTP/2 200

在浏览器上,重新加载您的网站。然后返回开发人员工具并确认“协议”列上的 h2 标签表示的 HTTP/2。

在 Apache 中使用 mod_php 模块时

如果您与 mod_php 模块一起运行 Apache,则需要切换到 PHP-FPM。这是因为 mod_php 模块使用了 HTTP/2 不支持的 prefork MPM 模块。您需要卸载预分叉MPM并切换到HTTP/2支持的mpm_event模块。

例如,如果您使用 PHP 7.4 mod_php 模块,请禁用它,如下所示:

sudo a2dismod php7.4 

此后,禁用 prefork MPM 模块。

sudo a2dismod mpm_prefork

禁用模块后,接下来启用 Event MPM、Fast_CGI 和 setenvif 模块,如图所示。

sudo a2enmod mpm_event proxy_fcgi setenvif

在 Ubuntu 上安装 PHP-FPM

接下来,安装并启动 PHP-FPM,如图所示。

sudo apt install php7.4-fpm 
sudo systemctl start php7.4-fpm

然后启用 PHP-FPM 在启动时启动。

sudo systemctl enable php7.4-fpm

接下来,启用 PHP-FPM 作为 Apache 的 PHP 处理程序,并重新启动 Apache Web 服务器以使更改生效。

sudo a2enconf php7.4-fpm

在 Apache Ubuntu 中启用 HTTP/2 支持

然后像以前一样启用 HTTP/2 模块。

sudo a2enmod http2

重新启动 Apache 以同步所有更改。

sudo systemctl restart apache2

最后,您可以使用所示的curl 命令测试您的服务器是否使用HTTP/2 协议。

curl -I --http2 -s https://domain.com/ | grep HTTP

您还可以选择使用 Google Chrome 浏览器上的开发者工具进行验证,如之前所述。我们已经到了本指南的结尾,我们希望您发现这些信息很有价值,并且您可以轻松地在 Apache 上启用 HTTP/2。

©2015-2025 艾丽卡 support@alaica.com