nginx配置,同一个端口对应移动端与pc端

依靠设备浏览器区分:

1、传递请求头

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

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

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

javascript 复制代码
add_header Vary "Accept-Encoding, User-Agent";

2、根据头信息区分跳转

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

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

要在同一个端口上区分移动端和PC端的请求,并对它们进行不同的配置,你可以在Nginx配置文件中使用ngx_http_mobile_detect_module模块或者通过检查User-Agent头来进行区分。以下是一个基本的配置示例:

javascript 复制代码
	upstream merchantsweb{
			 server 172.xx.x.xxx:8096 weight=20;
        }
    upstream merchantswebapp{
			 server 172.xx.x.xxx:8094 weight=20;
        } 
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))  {
            	  #移动端对应文件
                  proxy_pass http://merchantswebapp;
            }
            #PC端对应文件
            proxy_pass http://merchantsweb;
            index  index.html index.htm;  
      }   
}
相关推荐
herinspace13 分钟前
管家婆分销软件中如何进行现金流量分配
运维·服务器·数据库·学习·电脑
(Charon)16 分钟前
【网络编程】从零开始理解 io_uring:Linux 网络编程的“核动力”引擎
linux·运维·服务器
麦聪聊数据17 分钟前
LiveOps事故零容忍:游戏行业数据库的细粒度权限管控与审计实践
运维·数据库·后端·sql
哪里不会点哪里.17 分钟前
Nginx 详解:高性能 Web 服务器与反向代理
服务器·前端·nginx
历程里程碑20 分钟前
Linux 10:make Makefile自动化编译实战指南及进度条解析
linux·运维·服务器·开发语言·c++·笔记·自动化
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.21 分钟前
HAProxy 自定义错误页面配置指南
运维·负载均衡·web
heartbeat..22 分钟前
Redis Cluster (Redis 集群模式)从入门到精通:架构解析、机制详解与运维排查
java·运维·redis·架构·nosql
阿湯哥1 小时前
Reactor响应式编程中Flux和FluxSink
运维·服务器·网络
桌面运维家1 小时前
vDisk考场环境网络瓶颈怎么定位?快速排查指南
运维·服务器·网络
Cisco_hw_zte1 小时前
挂载大容量磁盘【Linux系统】
linux·运维·服务器