当前位置:首页 > 日记本 > 正文内容

配置CDN/全站加速支持手机和PC端的不同访问

zhangchap2年前 (2021-12-28)日记本375

未开启cdn/全站加速之前,网站区分pc/m 访问是通过Nginx识别ua实现跳转。

开启后,由于html静态页面缓存到cdn服务商的服务器上,不再请求源服务器,导致部分页面跳转出现问题

  1. 不跳转,m端访问pc页面,不自动跳转自m页面

    解决方案:在页面上加入js跳转

    <script type="text/javascript">
        if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
            window.location = "https://m.huanghepiao.com/event/29669/";
        }
    </script>

部分页面出现的后遗症:死循环 pc ->m ->pc .....

原因不明

显然不是完美解决方案

通过查文档,正好查到一个之前问过的问题,cdn缓存页面如何识别ua


2.  通过在网站配置加入标识头解决 :配置CDN支持手机和PC端的不同访问


以下下是阿里云的文档:

本文概述CDN配置后支持手机和PC端的分别访问
需要设置CDN对不同的UA做不同的缓存,实现手机访问网站跳转到Wap页面,PC端访问跳转到PC端的页面
因为通过UserAgent头识别用户的客户端,然后返回不同的内容给不同的UA用户。但是CDN缓存并不会区分UA,只会区分URL,所以相同URL缓存的内容是一致的,无论UA是什么样
CDN是支持对不同的UA,设置不同的缓存,这个是根据vary头来控制的。vary头里面的字段一般是头信息的字段,表示CDN会检测这个头信息。如果内容不一致就缓存不同的内容,命中时也一样,必须头信息一致才会缓存。这个vary头需要在源站添加。在Nginx中增加如下信息。
add_header Vary "Accept-Encoding, User-Agent";

 

具体配置如下:

图片.png

不知道加的位置合适不合适,去掉js跳转代码后,不再出现死循环情况

分享给朋友:

相关文章

CDN下 Nginx开启PC/M识别跳到对应的域名下访问,css/js死循环问题

背景: 新做了一个网站:   服务器操作系统:Linux;   WEB服务器版本:nginx/1.16.1; 问题:...

更换服务器需要设置的几点

此设置只针对个人习惯,因为需要开通的网站及服务器较多,做个记录!就不公开了 此设置只针对个人习惯,因为需要开通的网站及服务器较多,做个记录!就不公开了 此设置只针对个人习惯,因为需要开...

火狐添加自定义搜索引擎

直接网址搜索自定义添加:https://mycroftproject.com/...

网络编辑工具箱注册ComCtl32.ocx

1.把ComCtl32.ocx放到c:\Windows\SysWOW64,注:需要管理员权限 2.打开C:\Windows\System32 找到 cmd.exe 鼠标右键管理员身份...

lxml win 安装方法

文档地址:https://lxml.de/installation.htmlwindows 下安装不了的都可以在这里找:https://www.lfd.uci.edu/~gohl...

python使用mongodb数据库

from pymongo import MongoClient,collection class KSpdier(Thread):   ...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。