咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
已安装了nginx,如何启用http2.0协议
蓝队云小课堂:
生产环境的nginx当初没有编译启用ngx_http_v2_module模块,因此网站不能启用http2.0协议,需要重新启用一下。
现在有两个目录,分别是nginx的源码目录和nginx的安装目录,如图所示:
操作流程
获取安装目录中的nginx都已经启用了哪些模块;
在源码目录中重新编译nginx,编译时要添加已启用的模块和ngx_http_v2_module模块;
将编译生成的nginx文件,拷贝到安装目录中,覆盖原有的nginx文件;
重启,大功告成;
源码目录和安装目录的版本必须一致!!!
开始实战
1. 获取已启用的模块
进入到安装目录:
cd /usr/local/nginx/sbin
获取已启用的模块:(-V是大写的)
./nginx -V
结果如下:
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目录下,如图所示:
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模块,如图所示:
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协议。
文件位置:
添加协议,如图所示:
listen 443 ssl http2;
更多小知识,可联系蓝队云一起探讨。