帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  已安装了nginx,如何启用http2.0协议

已安装了nginx,如何启用http2.0协议

2024-07-31 09:11:58 2011

已安装了nginx,如何启用http2.0协议

蓝队云小课堂:

生产环境的nginx当初没有编译启用ngx_http_v2_module模块,因此网站不能启用http2.0协议,需要重新启用一下。

现在有两个目录,分别是nginx的源码目录和nginx的安装目录,如图所示:

image.png

操作流程

  1. 获取安装目录中的nginx都已经启用了哪些模块;

  2. 在源码目录中重新编译nginx,编译时要添加已启用的模块和ngx_http_v2_module模块;

  3. 将编译生成的nginx文件,拷贝到安装目录中,覆盖原有的nginx文件;

  4. 重启,大功告成;

源码目录和安装目录的版本必须一致!!!

开始实战

1. 获取已启用的模块

进入到安装目录:

cd /usr/local/nginx/sbin

获取已启用的模块:(-V是大写的)

./nginx -V

结果如下:

image.png

2. 重新编译nginx

进入到nginx源码目录重新编译,通过--with-http_v2_module启用ngx_http_v2_module模块,然后make (注意不要make install,否则直接覆盖了)。

进入到源码目录:

cd /usr/local/nginx-1.18.0

配置编译文件,包括已启用的模块和ngx_http_v2_module模块:

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

编译一下:(注意不要make install,否则直接覆盖了)

make

编译后的文件生成在源码目录的objs目录下,如图所示:

image.png

3. 覆盖原有的nginx文件

先备份一下安装目录中的nginx文件

cd /usr/local/nginx/sbin
mv nginx nginx.bak

将编译后的nginx文件拷贝到安装目录中

cp /usr/local/nginx-1.18.0/objs/nginx /usr/local/nginx/sbin

用./nginx -V命令查看已启用的模块,可以看到--with-http_v2_module模块,如图所示:

image.png

4. 重启nginx

./nginx -s stop
./nginx

其它模块的启用也是类似的。顺便说下make和make install, make是把源码编译成可执行的二进制,make install是把编译好的二进制或一些文件安装到指定的路径。

5. 修改nginx.conf文件,添加http2.0协议

请注意,HTTP/2.0协议需要使用SSL加密。如果您的网站不使用SSL加密,则无法使用HTTP/2.0协议。

文件位置:

image.png

添加协议,如图所示:

listen       443 ssl http2;

image.png

 

更多小知识,可联系蓝队云一起探讨。

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: