Nginx区分PC端和移动端访问

在使用Nginx时,可以通过http_user_agent变量来判断用户访问的客户端类型,从而提供不同的内容或服务。下面是一个基于http_user_agent变量来判断是否为PC访问的Nginx配置示例。

  1. 理解$http_user_agent变量的含义及其在Nginx中的用途

$http_user_agent是Nginx中的一个内置变量,它包含了客户端浏览器发送给服务器的User-Agent字符串。这个字符串通常包含了浏览器类型、版本、操作系统等信息,可以用来区分不同的客户端类型。

  1. 研究常见的User-Agent字符串模式,特别是与PC浏览器相关的

不同的浏览器和操作系统会发送不同的User-Agent字符串。对于PC浏览器,常见的User-Agent字符串模式包括:

Mozilla/5.0 (Windows NT ...) AppleWebKit/... (KHTML, like Gecko) Chrome/...

Mozilla/5.0 (Windows NT ...) Gecko/... Firefox/...

Mozilla/5.0 (Macintosh; ...) AppleWebKit/... (KHTML, like Gecko) Safari/...

这些字符串中包含了浏览器名称(如Chrome、Firefox、Safari)和操作系统信息(如Windows NT、Macintosh)。

  1. 编写Nginx配置来根据$http_user_agent判断是否为PC访问

下面是一个禁止PC端访问的Nginx配置示例,它根据$http_user_agent变量来判断是否为PC访问,并返回不同的内容:

server {

listen 80;

server_name example.com;

location / {

set $is_pc 0;

判断是否为PC访问

if ($http_user_agent ~* "(Windows NT|Macintosh)") {

set $is_pc 1;

}

根据判断结果返回不同的内容

if ($is_pc = 0) {

root /usr/share/nginx/html/mobile;

} else {

#root /usr/share/nginx/html/pc;

return 403;

}

index index.html;

}

}

相关推荐
酷可达拉斯20 分钟前
自动化运维-从零开始编写ansible剧本(二)
linux·运维·服务器·centos·自动化
A-刘晨阳23 分钟前
Kubernetes 非共享存储详解:emptyDir 与 hostPath 从入门到实践
运维·云原生·容器·kubernetes·hostpath·emptydir
Nomarsgo28 分钟前
联控 Lionconit PTC-1006手持工业平板电脑在野外输电线路巡检中的应用方案
运维·科技·自动化·汽车·电脑
瀚高PG实验室1 小时前
几种因网络波动导致应用与数据库操作异常的现象
运维·网络·数据库·postgresql·瀚高数据库
风曦Kisaki1 小时前
# Kubernetes(K8s)笔记Day15:K8s网络工作原理【Pod 网络模型,CNI 网络插件,Calico 工作模式详解,BGP协议,路由反射器】
运维·网络·nginx·云原生·容器·kubernetes
allforgood1 小时前
管理 SELinux 安全性
linux·运维·网络
飞飞传输1 小时前
海关行业FTP传输服务器评测:传统FTP与现代化替代方案对比
大数据·运维·安全
闲猫1 小时前
docker compose 命令
运维·docker·容器
.柒宇.1 小时前
运维常见面试题_02_数据库
运维·数据库·sql·面试
九硕智慧建筑一体化厂家2 小时前
从光伏板到护眼灯,直流照明如何重构绿色校园的能源基因
运维·人工智能·重构·智慧城市·能源