如何在 Ubuntu 上的 Apache 中启用 HTTP 2.0?

linuxubuntuoperating systemopen source

HTTP/2.0 是 HTTP 协议的最新版本,与其前身 HTTP/1.1 相比,性能显著提升。在 Apache Web 服务器上启用 HTTP/2.0 可以提升网站的速度和响应能力,从而为访问者带来更佳的用户体验。本文将指导您完成在 Ubuntu 上的 Apache 中启用 HTTP/2.0 的步骤。

步骤 1:检查 Apache 版本

在启用 HTTP/2.0 之前,务必确保您的 Apache 版本与 HTTP/2.0 兼容。要检查您的 Apache 版本,请在终端中运行以下命令:

apache2 -v

输出将显示您的 Apache 版本。如果您的 Apache 版本为 2.4.17 或更高版本,则可以继续启用 HTTP/2.0。

步骤 2:安装 SSL 证书

HTTP/2.0 需要安全的 SSL/TLS 连接。因此,您需要在您的 Web 服务器上安装 SSL 证书。如果您尚未安装 SSL 证书,可以按照本文中的说明获取免费的 Let's Encrypt SSL 证书:如何在 Ubuntu 上安装 Let's Encrypt SSL。

步骤 3:启用 HTTP/2.0

要在 Apache 服务器上启用 HTTP/2.0,请按照以下步骤操作 -

  • 安装所需模块 -

sudo apt-get install libapache2-mod-http2
  • 编辑 Apache 配置文件 -

sudo nano /etc/apache2/sites-available/your-site.conf
  • 将以下几行添加到您的 VirtualHost 块 -

Protocols :h2 http/1.1
  • 保存并关闭文件。

重启 Apache

sudo service apache2 restart

大功告成!您已成功在 Apache Web 服务器上启用 HTTP/2.0。

步骤 4:测试 HTTP/2.0

要验证您的服务器是否已启用 HTTP/2.0,您可以使用 HTTP/2.0 测试工具(网址:https://tools.keycdn.com/http2-test)。

输入您的网站网址,然后点击"测试 HTTP/2.0"按钮。如果测试显示您的网站正在使用 HTTP/2.0,那么恭喜您!您的网站现在速度更快、更安全。

在 Apache Web 服务器上启用 HTTP/2.0 时,请注意并非所有浏览器都支持此协议。某些旧版浏览器可能不支持 HTTP/2.0,它们会回退到使用 HTTP/1.1。因此,建议您也启用 HTTP/1.1,以确保所有访问者都能访问您的网站。

要同时启用 HTTP/2.0 和 HTTP/1.1,您需要修改 Apache 配置文件中的 VirtualHost 块,如下所示 -

Protocols h2 http/1.1

在 Apache 服务器上启用 HTTP/2.0 还可以增强网站的安全性。HTTP/2.0 需要使用 SSL/TLS 加密,这为您的网站提供了额外的安全保障。建议您使用强大的 SSL/TLS 配置来保护您的网站和访客的数据。

除了在 Apache 服务器上启用 HTTP/2.0 之外,您还可以针对 HTTP/2.0 优化您的网站。例如,您可以通过将多个资源合并到一个文件中、使用服务器推送预加载资源以及优化图片和其他媒体文件的大小来减少 HTTP 请求的数量。

在 Apache 服务器上启用 HTTP/2.0 时,另一个重要的考虑因素是服务器负载。HTTP/2.0 比 HTTP/1.1 需要更多资源,这意味着您的服务器在处理 HTTP/2.0 请求时可能会承受更高的负载。因此,建议您监控服务器的资源使用情况,并根据需要调整配置。

您可以使用 Apache 内置的 mod_status 模块等工具来监控服务器的资源使用情况。该模块提供服务器活动的实时信息,包括请求数量、每个请求的状态以及服务器的 CPU 和内存使用情况。

要启用 mod_status,您需要在 Apache 配置文件中添加以下行:

<Location /server-status>
   SetHandler server-status
   Require all granted
</Location>

启用 mod_status 后,您可以通过 Web 浏览器访问 http://your-server-ip/server-status 来访问服务器状态页面。该页面将显示服务器当前活动的摘要,包括活动连接数、每秒请求数以及服务器的 CPU 和内存使用情况。

通过监控服务器的资源使用情况并根据需要调整配置,您可以确保服务器在处理 HTTP/2.0 请求时能够处理增加的负载。

在 Apache 服务器上启用 HTTP/2.0 时需要考虑的另一个方面是虚拟主机的使用。如果您在同一服务器上托管多个网站,则可以为每个虚拟主机分别启用 HTTP/2.0。

要为特定虚拟主机启用 HTTP/2.0,您需要在虚拟主机配置文件中添加以下行 -

Protocols :h2 http/1.1

例如,如果您有两个名为"example.com"和"example.net"的虚拟主机,您可以按如下方式为每个虚拟主机启用 HTTP/2.0 -

<VirtualHost *:443>
   ServerName example.com
   Protocols h2 http/1.1
   SSLCertificateFile /path/to/certificate.pem
   SSLCertificateKeyFile /path/to/private/key.pem
   ...
</VirtualHost>

<VirtualHost *:443>
   ServerName example.net
   Protocols h2 http/1.1
   SSLCertificateFile /path/to/certificate.pem
   SSLCertificateKeyFile /path/to/private/key.pem
   ...
</VirtualHost>

通过为每个虚拟主机分别启用 HTTP/2.0,您可以为每个网站提供更快、更灵敏的用户体验。

最后,务必保持 Apache 服务器的更新,以确保您拥有最新的安全补丁和性能改进。您可以使用以下命令更新 Apache 及其模块 -

sudo apt-get update
sudo apt-get upgrade

通过定期更新 Apache 服务器,您可以确保您的网站保持安全并保持最佳性能。

在 Apache 服务器上启用 HTTP/2.0 时需要考虑的另一个重要方面是缓存的使用。HTTP/2.0 内置了对服务器推送的支持,这使得服务器无需等待请求即可将资源推送到客户端。然而,服务器推送可能并非适用于所有资源的最佳解决方案,尤其是对于并非每次页面加载都需要的大文件。

为了优化使用 HTTP/2.0 的网站性能,您可以使用缓存来减少请求数量并提高网站速度。Apache 支持各种缓存机制,包括 mod_cache 和 mod_cache_disk。

Mod_cache 是一种内存缓存机制,它将频繁访问的内容存储在内存中。这可以显著降低服务器负载并缩短频繁访问资源的响应时间。

另一方面,Mod_cache_disk 将频繁访问的内容存储在磁盘上,这可以缩短不频繁访问资源的响应时间。这还可以通过减少对服务器的请求数量来降低服务器负载。

要在 Apache 服务器上启用缓存,您需要在虚拟主机配置文件中添加以下几行 -

<IfModule mod_cache.c>
   CacheQuickHandler on
   CacheLock on
   CacheLockPath /tmp/mod_cache-lock
   CacheLockMaxAge 5
   CacheIgnoreCacheControl On
   CacheIgnoreNoLastMod On
   CacheIgnoreHeaders Set-Cookie
   CacheStorePrivate On
   CacheStoreNoStore On
</IfModule>

这些行启用缓存并指定缓存锁定路径和最长期限。您可以根据网站需求自定义这些设置。

除了启用缓存之外,您还可以通过压缩资源来优化资源大小。Apache 支持 gzip 压缩,这可以显著减少资源大小并提高网站速度。

要在 Apache 服务器上启用 gzip 压缩,您需要在虚拟主机配置文件中添加以下行 -

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/x-javascript
DeflateCompressionLevel 9
DeflateWindowSize 15
DeflateBufferSize 8096
</IfModule>

这些行针对指定的内容类型启用 gzip 压缩,并指定压缩级别、窗口大小和缓冲区大小。您可以根据网站需求自定义这些设置。

结论

在 Apache Web 服务器上启用 HTTP/2.0 可以显著提升网站的速度和性能。按照本文概述的步骤,您可以轻松地在 Ubuntu 服务器上启用 HTTP/2.0,并享受此新协议带来的好处。


相关文章


有用资源