ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Nginx代理:通过同个域名同个端口分别在PC端和手机端访问不同的适配页面

2022-08-21 12:00:42  阅读:251  来源: 互联网

标签:index 缓存 mobile 适配 同个 PC 跳转 UA vary


一、nginx配置

  1、传递请求头

  最终目的是要使用UserAgent头来识别用户的客户端,然后返回不同的内容给不同的UA用户。而CDN(内容分发网络)缓存并不会区分UA(UserAgent),只会区分URL(访问的地址),所以在访问同样的域名和端口时,缓存的内容是一样的。CDN支持对不同的UA来设置不同的缓存,根据vary头来控制,它的字段一般是头信息的字段。

  CDN监测vary头的信息,如果内容不一致就缓存不同的内容,如果头信息一致才会缓存覆盖。

  vary头需要在源站添加,即在nginx中配置代理时进行添加,配置语句如下:

add_header Vary "Accept-Encoding, User-Agent";

  2、根据头信息区分跳转

  已经携带了请求头,对头信息的终端类型进行判断即可,如果符合终端类型则跳转到手机页面,不符合则跳转到PC页面:

if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry|iPhone|Android))  {
      root /xxxxxx;
}

  3、整合如下

server {
      listen       80;
      server_name  www.xxxxxx.com;
      location / {
            add_header Vary "Accept-Encoding, User-Agent";
            #判断是否为手机端
            if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry|iPhone|Android))  {
                  root /mobile;
            }
            root /pc;
            index  index.html index.htm;  
      }   
}

  /mobile为手机端部署路径,/pc为pc端部署路径。

  

标签:index,缓存,mobile,适配,同个,PC,跳转,UA,vary
来源: https://www.cnblogs.com/guobin-/p/16609735.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有