设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
快捷导航
发布信息
搜索
搜索
首页
优惠促销
云服务器
独立服务器
站群服务器
母鸡服务器
服务器托管
全球云服务器
技术文档
联系
每日签到
本版
文章
帖子
用户
主机测评网
»
论坛
›
技术文档
›
其他教程
›
解决Nginx配置http2不生效,谷歌浏览器仍然采用http1.1 ...
返回列表
发新帖
解决Nginx配置http2不生效,谷歌浏览器仍然采用http1.1协议问题
[复制链接]
|
主动推送
38
|
0
|
2024-9-11 18:06:26
|
显示全部楼层
|
阅读模式
昨天一个网友通过 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 了:
事后突然想起,其实自己之前折腾网站的时候其实遇到过同样的问题,就因为没有记录导致重复造轮子。所以这次记录分享一下,权当是备忘吧!
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
素色流年783
102
主题
0
回帖
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
加好友
发消息
回复楼主
返回列表
网络技术教程
软件使用教程
Windows教程
Centos教程
Ubuntu教程
Linux其他教程
综合教程
其他教程
其他文档
服务器商家推荐
华夏互联
蓝速云
米图云
全球云
文章
1
苹果电脑MAC系统登录Windows远程桌面
2
Debian拓展硬盘工具。cloud-utils-growpart、xfsprogs
3
安卓Android手机怎么使用V2rayNG?
4
WINDOWS系统电脑怎么使用WINXRAY?
5
notepad++.8.5.7编辑器,代码编辑器
6
DirectX修复工具增强版_V4.3.0.40864版本DLL修复工具C++安装
7
Visual C++运行库合集包完整版VisualCppRedist_AIO_x86_x64
8
ChromeSetup谷歌浏览器一键安装