如何在Apache和Nginx中启用HTTP/2?

本文概述

HTTP/2是2015年发布的第二个主要版本HTTP协议。

http-protocol-history

自发布以来, 大约11%的网站支持HTTP/2。

如何在Apache和Nginx中启用HTTP/2?4

它具有许多功能, 例如:

  • HTTP标头压缩
  • 推技术
  • 通过单个TCP连接并行加载页面元素
  • 二进制协议
  • 减少延迟

AKAMAI的演示显示HTTP/2大约比HTTP/1.1快两倍

如何在Apache和Nginx中启用HTTP/2?6

你是否知道LiteSpeed是最早支持HTTP/2的Web服务器之一?

如果你正在使用CDN(例如Cloudflare, Incapsula, MaxCDN), 则可能不需要在Web服务器中启用HTTP/2, 因为可以从CDN网络边缘进行操作。

但是, 如果你需要在Web服务器(例如Apache, Nginx, IIS)中实现HTTP/2, 则可以按照以下方法进行操作。

注意:当前, 所有浏览器仅通过HTTPS支持HTTP/2协议。你的Web服务器必须配置有SSL证书才能支持HTTP/2。

但是请不要担心, 如果你正在做一些实验, 则可以免费获得SSL证书。

在Apache HTTP中实现HTTP/2

可以使用mod_http2模块将HTTP/2部署在Apache HTTP 2.4.17或更高版本中。因此, 如果你具有2.2或更低版本, 则首先必须升级到兼容版本。

让我们使用mod_http2, mod_ssl模块编译Apache HTTP。

  • 下载最新版本(我将在Linux上执行2.4.25)
  • 解压缩下载的文件, 如果你下载了.gz文件, 则
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
  • 你将看到一个新的文件夹创建, 进入其中
  • 使用configure命令从源代码构建Apache

注意:如果你在全新的服务器上尝试此操作, 则可能会在安装依赖项时遇到错误, 本指南应对此提供帮助。

./configure --enable-ssl --enable-so --enable-http2
  • 确保完成以上命令后没有错误, 请执行以下make命令
make
make install

可以得出结论, Apache HTTP已安装了HTTP/2模块, 现在该进行必要的配置了。

  • 备份httpd.conf文件(默认位置/etc/httpd/conf/httpd.conf)
  • 使用vi打开httpd.conf文件, 并确保以下内容存在(如果不存在), 然后添加它。
LoadModule http2_module modules/mod_http2.so
  • 接下来, 你需要添加Protocols指令, 如下所示
Protocols h2 h2c http/1.1

如果要为单个虚拟主机启用HTTP/2, 则需要在相应的VIrtualHost下添加协议。

注意:以上Protocols指令中包含三个参数

  • h2 –指示Apache通过SSL/TLS支持HTTP/2协议
  • h2c –指示Apache通过TCP支持HTTP/2
  • http/1.1-如果客户端不接受HTTP/2, 则可以通过HTTP/1.1提供请求

重新启动Apache HTTP服务器以重新加载配置。

现在, 已启用Apache HTTP实例以支持HTTP/2协议。

在Nginx中实现HTTP/2

Nginx 1.9.5或更高版本支持HTTP/2, 因此首先必须确保已安装兼容版本。

在Nginx中启用HTTP/2只是在listen指令中添加http2参数的问题。

  • 与往常一样, 备份nginx.conf文件(默认位置/etc/nginx/nginx.conf)
  • 使用vi进行修改并在listen指令下添加http2
server {
        listen       443 http2 ssl chandan.io;
        …....
}

如上所述, HTTP/2仅受HTTPS支持, 因此必须在具有SSL配置的服务器块下添加。

如果你的SSL配置位于nginx.conf以外的其他文件中, 则必须在那里进行更新。

完成后, 重新启动Nginx以便激活配置。

验证网站是否支持HTTP/2

有多种方法可以检查网站是否支持HTTP/2。

手动–打开IE/Chrome/Firefox, 然后按F12 >>转到”网络”标签, 你应该看到协议为HTTP/2

如何在Apache和Nginx中启用HTTP/2?8

在线–你可以使用HTTP/2测试工具

今天就这些了。我希望以上内容可以帮助你在Apache和Nginx Web服务器中启用HTTP/2协议, 以快速加载Web页面。

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?