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;

}

}

相关推荐
Zfox_2 分钟前
【Docker#6】Docker 容器常用命令
linux·运维·服务器·docker·容器
程序员一点5 分钟前
第19章:openEuler 中的容器支持(Docker 与 iSulad)
运维·docker·容器·openeuler
胶水代码27 分钟前
软件开发之DevOps
运维·devops
智能运维指南29 分钟前
信创背景下,国产 DevOps 选型的价值跃迁路径设计(2026)
运维·devops
生活予甜31 分钟前
2026年算法备案办理服务优选服务商口碑解读
大数据·运维·人工智能
jiayong2336 分钟前
流程设计器技术选型评估报告
运维·ubuntu·流程引擎
AI-小柒38 分钟前
OpenClaw技术深度解析:从智能助手到自动化引擎的范式革命(附DataEyes实战)
大数据·运维·开发语言·人工智能·python·http·自动化
springfancy20131 小时前
数字化运维实践:如何构建全场景、智能化的设备管理系统?
运维·设备管理系统·设备维保管理系统·设备运维管理系统·设备保养管理系统
邓草1 小时前
phpStudy v8.1 离线版一键安装包(小皮面板)
运维·服务器·mysql
ego.iblacat2 小时前
Web 技术与 Nginx 网站环境部署
运维·前端·nginx