专栏首页张戈的专栏解决Nginx配置http2不生效,谷歌浏览器仍然采用http1.1协议问题

解决Nginx配置http2不生效,谷歌浏览器仍然采用http1.1协议问题

昨天一个网友通过 QQ 联系我,说按照我博客之前分享的 http2 配置教程不能生效,想请我帮忙看看。

经过测试,使用谷歌浏览器访问他的测试站点,确实没有开启 http2,但他的配置和编译参数都正确的,这有点奇怪了。

不过昨天太忙就没有继续帮他分析,他只好将服务器账号和密码都留言给了我。今天中午我抽空在他服务器重新编译测试了一把,才发现原来是这么一个梗!

他在编译 Nginx 之前,使用的是 yum 安装的 openssl,可能是他的 yum 源太陈旧,或者没配置 EPEL 导致 yum 安装的 openssl 版本过低!而他在编译 Nginx 的时候并没有使用--with-openssl=DIR 的选项来静态编译,所以他编出来的 Nginx 用的系统低版本的 openssl,导致谷歌访问时并不会开启 http2!

找了段专业解释如下:

Chrome 在最近的更新中放弃了对 NPN 的支持,如果想要继续在 Chrome 上支持 HTTP/2 ,则需要安装最新 1.0.2 版的 OpenSSL,并且用 1.0.2 的 OpenSSL 重新编译 Nginx。 参考资料: 新版 Chrome 下滚回 HTTP/1.1 Supporting HTTP/2 for Google Chrome Users

所以,解决方法就非常简单了,从openssl 官网下载最新源码包,然后新增如下参数重新编译即可:

--with-openssl=源码包解压目录

比如:

./configure --prefix=/usr/local/nginx --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-openssl=/data/openssl-1.0.2c

当然,我们也可以先更新 yum 源,比如改用 EPEL 源,使用 yum update openssl 升级后重新编译。这里我个人建议使用源码静态编译。

重新编译安装后,再利用谷歌浏览器访问如下网址:

chrome://net-internals/#http2

测试他的网站已经成功开启 http2 了:

事后突然想起,其实自己之前折腾网站的时候其实遇到过同样的问题,就因为没有记录导致重复造轮子。所以这次记录分享一下,权当是备忘吧!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 解决Linux下MySQL启动错误Starting MySQL.Manager of pid-file quit without updating file.[FAILED]

    上午刚装完 MySQL,启动时报如下错误: Starting MySQL.Manager of pid-file quit without updating f...

    张戈
  • 服务器日志备份超节省空间的思路

    这两天,监控频繁发来服务器磁盘空间 90%+的报警,打扰睡觉不说,塞得满满的总是不舒服的。刚来公司才 20 天,对于部分细节上的运维了解得还不是很到位,比如这备...

    张戈
  • 单机MySQL数据库优化推荐的编译安装参数

    MySQL 编译参数多而复杂,让新手感到很头大,如果是正式生成环境安装 MySQL,没有充足的时间去研究每一个参数代表的意义,个人建议使用余洪春前辈整理的编译参...

    张戈
  • silverlight的独立存储

    这个东西有点象Flash的Cookie,可以用来在客户端存储一些数据,我在官方文档上读到这个功能的第一反应就是:用它来做IM的客户端聊天记录存储太棒了,呵呵 ...

    菩提树下的杨过
  • Docker For Test 系列五:数据持久化

    上面有写到基于容器的变化新建一个镜像,既然如此,那我在容器中对数据的修改应该会保存到新生成的镜像中,然后我再用新镜像new一个容器出来,数据更新部分不就保存到新...

    测试邦
  • 三分钟了解云手机可以用来做什么?

    云手机使用上和远程电脑类似,在手机或电脑上都可以操作云手机,使用方式和普通手机一样。

    用户7261497
  • 惧怕羊毛党?腾讯云为你保驾护航

    最近是世界杯,不管你是否看球或者赌球,也会被带进这场全球范围的赛事的热情氛围中,各路人马包括大量的创业公司都在O2O这一领域深挖、布局,都想抢占这个一个万亿级的...

    Techeek
  • 智能手机的使用寿命能达到五年吗?

    现在能够把智能手机用上5年的人已经相当稀少了,基本上在5年的时间内正常换手机的频率差不多已经有2,3个手机了,正常两年换一次手机,所以智能手机现在的市场已经趋于...

    程序员互动联盟
  • Linux 下按照文件大小查找文件

    我想大概是这种情况,你的Linux 机器下磁盘满了,需要清理,然后就需要查找大的文件,确定是否有用进行删除。

    技术小黑屋
  • 乔布斯的工业美学输给了手机壳

    下一代IPhone,暂且叫做IPhone6,面世时间未知,各种“谍照”已不断流出:变长,变薄,变轻,窄边框,曲面屏幕,NFC,散热新材料,续航加强,你能...

    罗超频道

扫码关注云+社区

领取腾讯云代金券