如何在Nginx上支持HTTP/2
HTTP/2(原名HTTP 2.0)即超文本传输协议第二版,使用于万维网。HTTP/2主要基于SPDY协议,通过对HTTP头字段进行数据压缩、对数据传输采用多路复用和增加服务端推送等举措,来减少网络延迟,提高客户端的页面加载速度。HTTP/2没有改动HTTP的应用语义,仍然使用HTTP的请求方法、状态码和头字段等规则,它主要修改了HTTP的报文传输格式,通过引入二进制分帧实现性能的提升。
编译带有HTTP/2支持的Nginx
默认编译的 Nginx 并不包含 HTTP/2 模块,我们需要加入参数来编译.
我们首先记录下Nginx原先的编译配置:
1 | /usr/local/nginx/sbin/nginx -V |
得到下面的内容:
1 | nginx version: nginx/1.20.2 |
我们需要将到Nginx的configure arguments
复制下来,到安装包的./configure
中加入--with-http_v2_module
,如果没有ssl支持,还需要加入--with-http_ssl_module
参考:
1 | ./configure --prefix=/usr/local/nginx --add-dynamic-module=../ngx-fancyindex-master/ --add-dynamic-module=../njs/nginx/ --with-http_addition_module --with-http_ssl_module --with-compat --with-http_stub_status_module --with-http_v2_module --with-http_sub_module |
Nginx配置文件
主要是配置 Nginx 的 server
块:在listen 443 ssl
的后面加一个http2
即可
1 | server { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Aethoce's Blog!