Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >接入cdn以后访问https正常但访问http不正常

接入cdn以后访问https正常但访问http不正常

原创
作者头像
冰糕块块
修改于 2021-11-09 02:24:58
修改于 2021-11-09 02:24:58
1.5K0
举报
文章被收录于专栏:技术小生活技术小生活

背景:

CDN的作用是加速,访问CDN链接和源站链接应该有一样的访问功能效果。 有的客户在使用的时会发现接入cdn以后和源站的访问效果不一样, 比如有的在使用cdn的时候发现网站接入cdn以后输入账号密码点登陆无反应,但直接访问源站是可以正常访问的。有的接入cdn以后有时候访问正常,有的访问不正常,但源站都正常。这种情况下一般客户第一反应是不是CDN出故障了? 那么是不是真的CDN出故障了呢, 实际上不尽然, 让我们一起剖析一下下面的案例, 看看这里的原理和问题的本质原因。

问题描述:

某客户反馈网站接入cdn以后有时候访问正常有时候访问不正常,但直接访问源站是可以正常访问的。

原因分析:

首先让我们快速理清楚这个问题现象。

1) 复现case,确认问题-》确定用户所报问题,发现规律

拿到cdn访问正常和不正常的链接,接入CDN后确实访问http有问题。这里我们可以看到,当访问 https://xxxcdn.colasun.com/helloworld 时,正常返回200.但访问http协议的时候 http://xxxcdn.colasun.com/helloworld 返回423 locked。用浏览器访问该http资源不能正常的显示页面。

2) 检查源站,查看网站是否可以正常登录-》源站功能正常,排除源站功能问题

绑定源站直接访问的时候可以看到无论是http协议还是https协议的,都能正常返回对应的图片。 用curl命令查看,返回的头部如下:

我们可以看到,访问源站的https正常返回200, 访问http的时候,有一个301跳转。

那么源站这个301跳转和之前cdn返回的423locked 有没有什么关系呢?423错误码的意思是CDN 检测到有回环请,哪里造成了回环请求呢? 让我们来看下客户的配置。

3) 检查客户回源配置

发现客户同时开启

协议跟随回源

回源跟随301/302

结合上面源站测试结果,源站是做了http到https的强制跳转,把整个访问流程用下图描述并分析,我们的问题原因就逐渐清晰:

a.HTTPS访问场景

当用户用Https访问时, 协议跟随回源会用https回源访问, 这时源站正常响应https,CDN收到以后正常返回客户的200,完成一次正常回源请求。

b. HTTP访问场景

当用户用Http访问时, 协议跟随回源会用http回源访问,这是源站发现是http请求,301强制跳转成https location给cdn, 但因【回源跟随301/302配置】不支持https方式、会继续以http方式回源站,整过程简化为:http->https->http, 因此造成回环请求,CDN检测到回环请求以后返回给客户端423

从上述分析可以看到, 正式由于源站设置了https强制调整的同时, 又设置了回源跟随301/302和协议跟随回源,才造成了接入cdn以后用户用https访问正常, 用http访问不正常。

解决方案

对于此case,如果源站设置了https强制跳转,可以通过如下2种方法解决:

方法1:关闭回源跟随301/302

方法2:开启https回源

小结

这里我们可以看到,CDN加速网站输入账号密码点登陆无反应这种类似的案例一般也可以先检查一下是否有类似的设置。如果接入CDN以后,出现访问不符合预期,但源站访问正常时,未必一定是CDN的故障。大家分析产品设计的原理, 看下使用方式是否正常或是否可以优化。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
针对二维码解析库的 Fuzzing 测试
在四月份的时候出了那么一个新闻,说微信有一个打开图片就崩溃的 bug,当时微信群里都在传播导致手机各种闪退。
evilpan
2023/10/17
5490
针对二维码解析库的 Fuzzing 测试
二维码劫持原理及恶意行为分析
之前看过其他的二维码登陆劫持漏洞,有的地方写的不是很详细,花了不少时间去研究二维码的原理,才弄懂漏洞。为了照顾更多入门新手,以本人的理解重新总结一遍,二维码登陆原理不是这里的主题,不过有必要熟悉一下流程。
FB客服
2019/05/15
2.6K0
二维码劫持原理及恶意行为分析
分享几个可用的二维码API,以及给博客添加文章二维码图片的方法
最新补充:博客已分享性能最好的 js 生成二维码方案==>传送门 今天发现之前用的二维码 API 不怎么稳定了,老是出现图裂无法加载的情况。用的是 api.qrserver.com 这个 API 服务,手动访问了几次,发现时好时坏!看来得另找其他可用的二维码 API 了。还好,互联网总是不缺乏免费服务的,不出几分钟,就让我找到了 2 个!现在就来分享给二维码需求的朋友! 先简单说下为什么要添加这个二维码:有博友提到这个功能好像没啥用。。。我也觉得确实挺鸡肋的。 还是说一个场景吧:当你看到我博客一篇很有用的教
张戈
2018/03/23
2.6K0
二维码劫持案例分析
微信扫描二维码登录网站,相信很多网站登录中都有这个功能。但是这个功能使用不当,将会出现劫持漏洞。话不多说,直接分享三个实战挖掘的案例,三个的实现方式都不一样(已脱敏).
FB客服
2020/05/14
2.2K0
二维码劫持案例分析
PHP QRCode 生成二维码
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/details/76640540
泥豆芽儿 MT
2018/09/11
4.5K0
PHP QRCode 生成二维码
Vue生成二维码_vue通过二维码分享
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
6840
Vue生成二维码_生成二维码插件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
1.7K0
用 Python 制作各种用途的二维码
当你提到二维码时,大多数人想到的是仓库管理或产品标签等 "工业 "应用,但这篇文章在很大程度上是关于二维码的个人和社会用途。
周萝卜
2022/12/27
1K0
用 Python 制作各种用途的二维码
js生成二维码_js生成二维码并保存
前段时间项目中需要开发扫描二维码查看信息的功能,在网上查了一些资料,把用过的方法进行总结需要导入一个qrcode的js 插件。
全栈程序员站长
2022/11/02
6K0
js生成二维码_js生成二维码并保存
Go 语言中如何操作二维码?
二维码(QR Code)已经成为我们生活中不可或缺的一部分,无论是支付、登录还是信息共享,它们可以轻松地存储和传输各种类型的数据,从网站链接到名片信息,无所不能。在开发中,我们经常会遇到识别二维码的需求,那么用 Go 语言如何实现二维码识别呢?
南山竹
2025/06/11
700
Go 语言中如何操作二维码?
vue如何生成二维码_vue实现扫描二维码
QRcode vue-qr vue-qr比QRcode功能多在可以在中间加logo
全栈程序员站长
2022/11/09
1.5K0
使用 Python 生成二维码
新时代,人们有人信新的追求,自然而然会有新发明的诞生。去年,在“一带一路”国际合作高峰论坛举行期间, 20 国青年投票选出中国的“新四大发明”:高铁、扫码支付、共享单车和网购。其中扫码支付指手机通过扫描二维码跳转到支付页面,再进行付款。这种新的支付方式,造就二维码满天飞的现象。那么让我们来扒一扒如何使用 Python 来生成二维码图片。
猴哥yuri
2018/08/16
1.5K0
命令行二维码
感谢支持ayqy个人订阅号,每周义务推送1篇(only unique one)原创精品博文,话题包括但不限于前端、Node、Android、数学(WebGL)、语文(课外书读后感)、英语(文档翻译) 如果觉得弱水三千,一瓢太少,可以去 http://blog.ayqy.net 看个痛快
ayqy贾杰
2023/03/15
3540
命令行二维码
vue生成二维码并保存图片_vue实现扫描二维码
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
1.4K0
如何用PHP快速搭建二维码生成API(完整教程)
Q:为什么返回的是Base64而不是直接图片? A:便于API统一返回JSON格式,前端可直接用于img标签的src属性
云峥百宝箱
2025/04/16
2250
php生成二维码
资料地址:https://download.csdn.net/download/tiaozhanji_xian/10450751
黄啊码
2020/05/29
1.2K0
做一个二维码生成器
玲琅满目的二维码在我们的都市和朋友圈中随处可见, 很多平台都提供了定制二维码的服务, 那么作为一名程序员, 我们如何自己实现一个简单的二维码生成器呢? 接下来笔者就来带大家一起利用Qrcode实现一个
程序员鱼皮
2021/08/23
1.1K0
做一个二维码生成器
phpqrcode生成二维码直接输出
首先去官网下载PHPqrCode库文件,只需要里面的phpqrcode.php文件,下载地址:http://phpqrcode.sourceforge.net
超级小可爱
2023/04/17
8140
Django中的二维码生成器
现在打开 qrcodeapp 的 views.py 编写生成二维码的逻辑,然后我们在模板上渲染它。
IT运维技术圈
2022/06/27
7260
Django中的二维码生成器
Go语言生成二维码是如此简单
二维码作为一种快速的输入手段越来越流行,支付,添加好友,买东西,扫个二维码就可以,非常方便。那么二维码是如何制作生成的呢?我们如何制作自己的二维码呢?
码农编程进阶笔记
2021/07/20
1K0
相关推荐
针对二维码解析库的 Fuzzing 测试
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档