索鸟网

  1. 首页
  2. 【记录】http2.0无法回退到http1.1

【记录】http2.0无法回退到http1.1


http2.0在图片等加载上面比http1.1快很多,因此,换到了http2.0。不过问题出现了,由于http2.0在兼容性上面并不是非常完整,导致使用http2.0的部分网站会偶发性出现协议失败的现象(几率很小)。而这种不稳定,促使我放弃一些网站的http2.0使用,因此就像换回http1.1,不过却出现http2.0无法回退到http1.1的问题

http2.0配置

server
{
    listen 443 ssl http2; #这样即可
}

于是我回退到http1.1

server
{
    listen 443;
}

不过蛋疼的事情来了,我访问回退的http1.1网站,发现使用的协议依然是http2

在google,baidu上面都搜索了下,发现大家并没有这种问题。于是又各种鼓捣,最终发现了原因

原因如下:
由于我有其他网站还是使用http2.0(因为并没有发现错误),而这些网站和我要回退到1.1的网站在同一台服务器。
http2.0网站监听的端口是443
http1.1网站监听的端口是443
他们都是用了443端口,而又在同一个命名空间。不过由于有http2.0的存在,覆盖了http1.1,也就是说,只要443端口开启了http2.0,那么即使你配置 listen 443;依然使用的http2.0

所以我将有http2.0的域名全部换成http1.1,发现解决问题

当然,如果想http1.1和http2.0共存在同一个nginx,那么可以使用不同的端口来区分

nginx http-2

来源地址:https://segmentfault.com/a/1190000011379185 版权归作者所有!

相关教程

  • Xcode、iPhoneOS回退到历史版本的方法记录

    昨天闲着没事把手机升级到iOS 11,连上Xcode说Xcode也要更新,Xcode更新又需要macOS也更新,闲着没事干就一股脑全更新了,虽然新的什么都好,Xcode9打开原来的工程也是报了好多警告和错误,不过每次更新都是这个样子,网上搜搜基本上也都能搞定,况且还新增了不少功能。 参考这篇文章:不可能不爱的 XCODE 9:最新功能详尽介绍 还能同时打开多个模拟器,还能无
  • DNS服务器无法显示A记录

    用户说他们两台DNS服务器其中一台DNS服务器看不到A记录了,确切的说是除了NS记录和SOA记录其它的都看不到,于是我便登录那台看不到记录的DNS服务器,都是和AD集成在一起的,两台AD,两台DNS,另一台DNS记录全部可以查看到,图中不显示任何A记录===问题排查由于还没有处理过这方面的问题,显得有点没有头绪1.第一步查看DNS区域是否和AD是集成的,而且复制也是域内所有DNS
  • 阿里校招前端面经

    阿里一面是电话面,问得不多,但是挺有深度。面试官一开始就说,看了你的项目,觉得你基础挺好的,那我就不问基础了。然后全程就真的没有问一个基础问题。。 1.说说你做的那个网页版手机QQ项目的难点。 我首先想到了滚动条位置无法还原的问题,也就是点击列表项跳到详情页后再返回时,滚动条位置无法还原的bug。我的解决办法是通过vuex来保存每个组件里的滚动条的位置,
  • 【实习总结】从网络性能优化历程看 HTTP2.0 多路复用

    以前我们谈性能优化,关键指标是页面 PLC(加载时间) ,简单的定义就是:浏览器中的加载旋转图标停止时间。 而当前,我们构建的不再是一个网页而是一个动态、交互的应用。现在我们来看看网络性能在其优化历程中是如何一步步的提高的。 先聊一聊 "样式在上,脚本在下" 的最佳实践 为什么 "样式在上,脚本在下" 是最佳实践? 要回答这个问题,我们得首先回顾一下浏览
  • MySQL5.7配置基于GTID的复制及GTID回退到传统模式的方法

    MySQL5.7下配置GTID复制的方法:环境:CentOS6.8X86_64MySQL Community 5.7.17 node1:192.168.2.171 主库node2:192.168.2.172 从库 修改主库和从库的配置文件,加入红色部分的配置项:主库:[mysqld]log-bin=mysql-binbinlog_format= ROWgtid
  • git已经push代码到gitlab如何回退

    开发经常会遇到代码提交后又想回到上一个提交的版本,但是不知道怎么操作,我也经常忘了需要百度才能搞定,现在写下这篇文章作为记录: 已经提交到git但是没有push的 1、回退到上一个版本,并保留修改记录,先查看提交历史: $ git log commit b69a4ced352ec9d5bd9dbf0036a052f9812854fb (HEAD ->
  • git_彻底的回退到指定版本,远程仓库也需要彻底回退,不留痕迹

    强制撤销push到远程仓库的代码的提交: git reset --hard 版本号回(退到想要去的版本,hard是不留任何的痕迹,soft是留痕迹,mixed也是留痕迹但是停留在当前的改变的界面而不像soft一样是返回之前的操作版本了) git push origin 分支名(提交当前的分支,会提示错误的) git push origin 分支名 --force   (
  • HTTP的长连接和短连接

    一、什么是长连接      HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。  HTTP首部的Connection: Keep-alive是HTTP1.0浏览器