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;

}

}

​

相关推荐
知已难寻1 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
huainingning2 小时前
Windows syslog日志服务器搭建与模拟器对接
运维·服务器·智能路由器
say_fall2 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
wacsii2 小时前
【Linux进程(一)】Linux 进程初探:操作系统如何管理进程?fork() 为什么返回两次?
linux·运维·服务器
相思难忘成疾3 小时前
从零搭建 Kubernetes 1.30 集群:kubeadm 部署一主多从实战(RHEL 9.3 + Docker + flannel)
linux·运维·kubernetes
PellyKoo3 小时前
【docker】cifs卷改smb密码后容器起不来的解决方法
运维·docker·容器
云飞云共享云桌面3 小时前
1台SolidWorks服务器如何承载10个设计并发?
运维·服务器·网络·3d·制造
未来之窗软件服务4 小时前
WAF负载均衡+蜜罐混淆安全体系-东方仙盟
运维·安全·负载均衡·仙盟创梦ide·东方仙盟·阿雪技术观·网关开发
Linux-lucky4 小时前
46-Linux学习之旅之LVS负载均衡与keepalived高可用
linux·运维·学习·ubuntu·负载均衡·lvs