解决Nginx配置http2不生效,谷歌浏览器仍然采用http1.1协议问题
2017-04-01 13:58
609 查看
昨天一个网友通过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=源码包解压目录
比如:
当然,我们也可以先更新yum源,比如改用EPEL源,使用 yum update openssl 升级后重新编译。这里我个人建议使用源码静态编译。重新编译安装后,再利用谷歌浏览器访问如下网址:
测试他的网站已经成功开启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=源码包解压目录
比如:
1 | ./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 |
1 | chrome://net-internals/#http2 |
事后突然想起,其实自己之前折腾网站的时候其实遇到过同样的问题,就因为没有记录导致重复造轮子。所以这次记录分享一下,权当是备忘吧!
相关文章推荐
- iOS开发工具-如何使用网络封包分析工具Charles,通过配置proxy对http、https、tcp、udp 等协议的请求响应过程交互信息进行分析、判断、解决我们移动开发中的遇到的各种实际问题。
- 解决Windows版本Nginx配置不生效问题
- 解决SQL Server 2005 安装程序中的 COM+ 系统配置检查失败问题(http://hi.baidu.com/huqiwen/blog/item/fdd7838b2d6ac9d5fd1f10cc.html)
- 解决新配置虚拟主机不生效的问题
- 解决Linux下ArcGIS Server的Tomcat不稳定问题,nginx配置反向代理时的一个小问题
- nginx 做proxy 不转发 http header问题解决
- 修改nginx配置文件解决dx2.5下载附件停止不动的问题
- 解决HTTP数据不更新问题——no-cache在HTTP通信协议中的应用
- w7 下配置IIS ,出现的IIS 7.5 HTTP 错误 404.3 - Not Found解决办法及 调用32位动态库问题
- nginx配置反向代理,域名代理后不生效问题
- 搭建windows+Nginx+PHP配置指南 以及 之后的问题解决
- 解决nginx作为前端代理默认访问一个80端口虚拟主机配置问题
- http 协议编码问题+JSP解决中文乱码问题
- Tomcat的参数配置及一般问题的解决---http://www.blogjava.net/Steven-bot/archive/2011/10/08/360161.html
- Struts配置连接池错误解决问题及实例2006-12-04 10:55Struts配置连接池错误解决问题 http://peter-kong.javaeye.com/blog/39307
- 解决在IIS7.0上部署ASP.NET1.1站点时【“/”应用程序中的服务器错误。无法识别的配置节“system.webServer”】的问题
- 解决“HTTP/1.1 405 Method not allowed”问题,让静态文件响应POST请求
- 解决“HTTP/1.1 405 Method not allowed”问题,让静态文件响应POST请求[原创]
- 采用Filter的方法解决HttpServletRequest.getParameter乱码的问题
- 解决Myeclipse8.5总是报内存不够。修改了Myeclipse.ini配置文件却不生效问题