Nginx学习与实战 · 配置HTTP2


字数:849 阅读时长:3分钟 阅读:85

HTTP/2 协议于2015年5月正式版发布,HTTP/2大幅度的提高了web性能,在HTTP/1.1完全语意兼容的基础上,进一步减少了网络的延迟。实现低延迟高吞吐量。本文就讲讲在LinuxNginx配置HTTP2的方法和步骤。

Nginx HTTP2

1、HTTP2科普

HTTP2基于spdy的思路,引入流与帧的概念,继承了 spdy 的多路复用,在此基础上开发的。

spdy协议: spdy在五层协议栈的TCP层与HTTP层引入了一个新的逻辑层以提高效率。spdy是一个中间层,对TCP层与HTTP层有很好的兼容,不需要修改HTTP层即可改善应用数据传输速度。 spdy通过多路复用技术,使客户端与服务器只需要保持一条链接即可并发多次数据交互,提高了通信效率。

1-1、HTTP2优点:

  • 二进制分帧
  • 首部压缩
  • 流量控制
  • 多路复用
  • 请求优先级
  • 服务器推送

2、前提条件

  1. 网站必须开启HTTPS
  2. openssl的版本必须 ≥ 1.0.2e
  3. nginx的版本必须 ≥ 1.9.5

3、安装 & 配置

目录介绍:

  • nginx安装目录:/usr/local/nginx/
  • nginx源码目录:/root/dev/nginx-1.20.1/

3-1.查看nginx版本信息

这里的nginx配置了全局环境变量,可以直接输入以下命令,nginx具体路径/位置根据个人配置来决定。

1
nginx -V

输出:

1
2
3
4
5
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module

查看configure中是否安装了with-http_v2_module模块,这里的已经安装了。若没有则进行下一步。

3-2.安装with-http_v2_module模块

3-2-1. 进入nginx源码目录,一般结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
auto  
CHANGES
CHANGES.ru
conf
configure
contrib
html
LICENSE
Makefile
man
objs
README
src

3-2-2. 配置with-http_v2_module模块,--prefix指向nginx安装目录

1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module

3-2-3. 编译,注意: 如果是首次安装nginx,还需要在编译完成后执行make install安装操作。如果之前已经安装了nginx,并且配置了相关服务,就不要再执行make install安装操作了,否则会覆盖原来的安装。

1
make

3-2-4. 编译执行成功后,会在nginx源码目录生成objs文件夹,此目录有一个nginx二进制文件,需要把这个nginx可执行文件复制到nginx安装目录。建议把旧文件先备份,方便回滚。

1
2
3
4
# 备份旧的nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
# 复制新的nginx
cp ./objs/nginx /usr/local/nginx/sbin/nginx

3-2-5. 检查模块是否添加成功,若configure arguments中包含--with-http_v2_module模块说明已经添加成功

1
/usr/local/nginx/sbin/nginx -V

3-3.配置 nginx.conf

configuration
1
2
3
4
5
6
7
8
9
10
server {
# 添加 http2
listen 443 ssl http2;
server_name tiven.cn;
root html;
index index.html index.htm;
# ...
# ...
# ...
}

3-4.重启nginx

1
2
3
4
5
6
# 检查配置
nginx -t
# 停止nginx
nginx -s stop
# 启动nginx
nginx

4、检查网站HTTP2协议是否开启

具体方法详见本站另一篇博文:HTTP协议版本检测


Nginx 相关推荐


欢迎访问:天问博客

本文作者: Tiven
发布时间: 2021-11-03
最后更新: 2022-05-12
本文标题: Nginx学习与实战 · 配置HTTP2
本文链接: https://www.tiven.cn/p/1612b5cd/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
欢迎留言,提问 ^_^